Inventory management system

ABSTRACT

Methods, systems, and articles of manufacture consistent with certain aspects related to the present invention collect item information from RFID tags attached to items in an inventory, and uses the collected item information to perform various inventory management processes. In one aspect, the inventory management processes may include determining, reporting, and/or providing corrective actions for one or more events associated with at least one of depletions of items in the inventory, changes in the design of items in the inventory, defects with one or more items, misplaced items, the movement of an unusual number of items within a short period of time (i.e., shrinkage), and malfunctions of one or more components included in the environment.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a divisional of pending U.S. Non-provisional patent applicationSer. No. 10/348,941, which is a non-provisional of U.S. ProvisionalPatent Application No. 60/350,023, filed Jan. 23, 2002, the entirety ofwhich applications is expressly incorporated herein by reference.

FIELD OF THE INVENTION

This invention relates to inventory management systems and, moreparticularly, to methods and systems for performing an inventorymanagement process that uses an intelligent station to track and/orinventory items that are tagged with Radio Frequency Identification(RFID) tags.

BACKGROUND OF THE INVENTION

Inventory management is becoming increasingly important in today'sgrowing economy. New products are continuously being developed andplaced in the market for consumer purchase. Although this growthprovides consumers with more choices for selecting various goods andservices, businesses (e.g., retailers, wholesalers, etc.) are taskedwith managing this growing inventory.

To manage growing product inventories, businesses have implementedperpetual type inventory management systems, which are systems that usePoint Of Sale (POS) data on products sold, invoicing data, andhistorical data on inventory audits or cycle counts (e.g., periodicinventory counts of products) to determine the inventory that existswithin the walls of a retail store. POS data generally refers to datagenerated at a checkout system (i.e., cash register). Based on theinventory level within the retail stores, products may be reordered froma manufacturer. Alternatively, the manufacturer and retailer may have anagreement that directs the manufacturer to preemptively deliver productsaccording to the terms of the agreement. Ideally, inventory isreplenished in a manner such that inventory arrives at the retail storejust before existing stock levels are exhausted.

Although perpetual inventory management systems alleviate some of theburden in managing large inventories, they employ a management thatinjects inaccuracies in cycle counts, POS scanning data, redundantre-ordering, misdirected shipments, and/or unusual sales velocity (i.e.,the sale of products that take place either too fast or too slow). Theresult is physical (actual) inventory out-of-stock levels as high as11-12 percent or even much higher for specially promoted products orproducts that are closely monitored for safety purposes (e.g., productswith expiration dates).

Another shortcoming associated with perpetual inventory managementsystems includes inventory shrinkage, also described as the reduction ofinventory due to non-sale circumstances. For example, shrinkage mayoccur at any point in a supply chain, stemming from invoice errors,vendor fraud, misdirected shipments, retail employee theft and customertheft. If inventory is computed as described above (i.e., usingperpetual inventory management techniques), shrinkage rates (amountingto several percent of sales) can cause divergence of theoretical (i.e.,inventory that is proposed or planned) and physical inventory. Anotherproblem with perpetual inventory management systems is the uncertaintyassociated with the effectiveness of product promotions. For instance,if the relationship between price and inventory velocity, known as priceelasticity, is not well understood, promotions can cause an out-of-stockcondition that negatively impacts customer satisfaction and loyalty.Alternatively, promotions can fail to achieve a desired reduction ofinventory when too much inventory is ordered and the price elasticity ispoorly estimated or measured.

Further, another related problem with conventional inventory managementsystems is associated with misplaced inventory on a retail shelf orsimilar support unit. Product manufacturers devote large sums of moneyto market certain products to consumers. In some instances, thismarketing may include combating a competitor that manufacturers asimilar product. Because retailers generally desire to present as muchinventory as possible for sale to the customer, some employees may filla void on a shelf dedicated for an out of stock product with relatedproducts. In some instances, the related products may include productsproduced by a manufacturer's competitor. This may result in lost salesfor the manufacturer and, in some cases, reduction in customersatisfaction. This may also violate agreements between retailers andmanufacturers or their distributors.

To address the shortcomings of conventional inventory managementsystems, businesses have begun to incorporate wireless identificationdevices to assist in managing the inventory of products. Thisadvancement contemplates attaching Radio Frequency Identification (RFID)tags on products during manufacture or when the products are stored in awarehouse. Each RFID tag includes an Integrated Circuit (IC) thatenables the tag to have a unique identification number. Therefore, whena product is taken from a warehouse and placed on a retail shelf, forexample, the products may be scanned to give a comprehensive inventory.Further, RFID tag technologies have been contemplated in providingdistributed inventory management between a manufacturer and a retailer.For example, a manufacturer may be alerted through the Internet eachtime a product is sold at a retailer using the information stored in theproduct's RFID tag. The manufacturer may then use this information toforecast replenishment schedules with the retailer to prevent an out ofstock situation.

Although the above mentioned RFID tag developments help overcome some ofthe shortcomings of conventional perpetual inventory management systems,these developments lack the capabilities to provide real, or near real,time comprehensive inventory management in almost any point of a supplychain. Accordingly, there is a need to provide an intelligent inventorymanagement system to provide a comprehensive view of the inventorywithin a particular environment.

SUMMARY OF THE INVENTION

Methods, systems, and articles of manufacture consistent with certainaspects related to the present invention provide a process for managingan inventory of items, each item being positioned in a respectivelocation within an environment and being associated with a correspondingwireless identification device. In one aspect of the invention, theprocess may include providing item information associated with each itemto each corresponding wireless identification device. Based on the iteminformation, the process may perform an inventory management process toprovide real time information associated with the inventory of items.The inventory management process may include at least one of an out ofstock control process, a shrinkage recognition process, a rapid productrecall process, an alert monitor process, and a sales optimizationprocess. Each of these processes may perform various tasks that are usedto manage the inventory of items in the environment, such as monitoringinventory levels of the items, detecting misplaced items in theenvironment, and providing feedback information associated with theitems based on detected events (e.g., suggested alternative locationsfor certain items based on sales data).

Additional features of the invention will be set forth in part in thedescription which follows, and in part will be obvious from thedescription, or may be learned by practice of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive of the invention, as claimed. The accompanyingdrawings, which are incorporated in and constitute a part of thisspecification, illustrate several embodiments of the invention andtogether with the description, serve to explain the principles of theinvention. In the drawings:

FIG. 1 is a block diagram of an exemplary system consistent with certainaspects related to the present invention;

FIG. 2 is a block diagram of an exemplary environment consistent withcertain aspects related to the present invention;

FIG. 3 is a flowchart of an exemplary EPC writer process consistent withcertain aspects related to the present invention;

FIG. 4 is a block diagram of an exemplary interface map consistent withcertain aspects related to the present invention;

FIG. 5 is a flowchart of an exemplary inventory analysis processconsistent with certain aspects related to the present invention;

FIG. 6 is a flowchart of an exemplary shrinkage process consistent withcertain aspects related to the present invention; and

FIG. 7 is a flowchart of an exemplary recall process consistent withcertain aspects related to the present invention,

DETAILED DESCRIPTION

The following description of embodiments of this invention refers to theaccompanying drawings. Where appropriate, the same reference numbers indifferent drawings refer to the same or similar elements.

Introduction

Systems and methods consistent with certain aspects related to thepresent invention enable an intelligent inventory management process tomonitor and collect information associated with an inventory of items(e.g., products) included in an environment. An item, as the term isused herein, may be any type of product that is manufactured, developed,grown by a farm business, and provided by a manufacturer, businessentity, individual, group of individuals, etc. For example, an item maybe food (e.g., produce, dairy products, canned goods, etc.), an articleof clothing, a plant or similar type of horticultural product, amachined part for an engine, sporting goods, etc. Further, an item maybe associated with live animals or fish, such as livestock (e.g.,cattle) that are raised by a livestock provider and sold to a livestockprocessing business. Alternatively, an item may be a domesticated ornon-domesticated animal, such as a dog or reptile that is raised and/ormaintained by an animal provider or caretaker (e.g., pet store, zoo,etc.).

The collected information may be used to perform various inventorymanagement processes that enable a user to control the inventory ofitems, monitor shrinkage, facilitate and identify recalled or defectiveitems included in the inventory, manage the misplacement of items withinthe environment, and receive alert messages associated with a variety ofitems inventory conditions, such as security conditions, out of stockconditions, etc.

In one aspect of the invention, an environment (e.g., retail store,etc.) uses a system of RFID-enabled structures, such as shelf units, tokeep track of an inventory of items. Such a system is described in U.S.Pat. No. 7,084,769, which is hereby incorporated by reference in itsentirety. Methods and systems consistent with certain aspects related tothe present invention enable data associated with the items to berepeatedly collected by a data collection system. A user may operate auser interface that provides demand-based item information (i.e., whenthe user requests it) or exception-based item information (i.e., whensomething unusual or noteworthy occurs). Based on the collected data, anintelligent inventory management application and/or the user may manageout of stock items, monitor shrinkage, perform rapid recall functions,and send out alerts about noteworthy events.

System Architecture

FIG. 1 is a high level block diagram of an exemplary inventorymanagement system 100 consistent with certain aspects related to thepresent invention. As shown, system 100 may include one or moreenvironments 110-1 to 110-N interconnected by a network 180.Environments 110-1 to 110-N may also be directly connected via a directcommunication path between the environments (not shown). Network 180 mayrepresent any type of communication configuration that allowsenvironments 110-1 to 110-N to exchange information. For example,network 180 may be a Local Area Network (LAN), a Wide Area Network(WAN), and a combination of networks, such as the Internet. Further,network 180 may include the infrastructure that allows environments110-1 to 110-N to exchange information using wireless basedcommunications.

Environments 110-1 to 110-N may each represent an environment associatedwith a business or non-business entity. In one aspect of the invention,each environment 110 may include, or is associated with, physicalstructures that manufacture, produce, maintain, store, and/or sellitems. For example, environments 110-1 to 110-N may represent a retailstore that sells items, a warehouse that purchases, stores, maintains,and/or ships items, a stock room that stores supplies, etc.

Environments 110-1 to 110-N may also represent a main office businessentity that manages the sale, production, storage, etc., of itemslocated and sold in other environments 110. For instance, severalenvironments (e.g., 110-1) may represent a retail outlet store, such asa supermarket, that sells items directly to consumers (i.e., users) andenvironment 110-N may represent a main office that manages the inventoryand other business aspects of each of the several environments. Inaccordance with certain aspects of the present invention, one or moreenvironments (e.g., 110-1) may perform intelligent inventory managementbased on item information collected by automated services performedwithin the environment(s).

To perform the intelligent inventory management services consistent withaspects related to the present invention, each environment 110-1 to110-N may include an Intelligent Inventory Management System (IIMS) 105,a Data Collection System (DCS) 160, and item inventory 170. IIMS 105 mayrepresent one or more computing systems, such as a server, personalcomputer, workstation, laptop, or any other similar computer systemknown in the art, that performs one or more processes consistent withcertain aspects of the present invention. Although FIG. 1 shows IIMS 105located within each environment, certain aspects of the invention enablethe IIMS 105 to be located outside an environment as well. For instance,a department store chain may have several stores connected by a networkto a single IIMS 105.

DCS 160 may be a configuration of hardware, firmware, and/or softwarethat performs data collection functions consistent with certain aspectsof the invention. In one aspect, DCS 160 includes components thatcollect item information from one or more items included in iteminventory 170 using RFID technologies. Item inventory 170 may representone or more items that are physically located within the respectiveenvironment 110. Item inventory 170 may also include one or more typesof items that may or may not be similar in characteristics, size, price,taste, functionality, etc. For example, in the example that environment110-1 represents a supermarket store, item inventory may includedifferent types of food and beverages, with each type of item includinga number of items. Thus, in the above example, environment 110-1 mayinclude thousands of items of different types of beverages and otheredible items. Alternatively, if environment 110-1 is associated with ahome improvement warehouse retail store, item inventory 170 may includedifferent types of tools, machines, appliances, etc.

For descriptive purposes in this application, the items described hereinare associated with retail merchandise that is assumed to rest on storeshelves that contain RFID antennae included in a respective environment110. Each item may be associated with an RFID tag that includes iteminformation associated with the respective item. For example, an RFIDtag may include identification information unique to the item that thetag is attached, such as an a serial number or a price number.Alternatively, the RFID tag may include item information representing atype and/or associated characteristics of the item, and informationidentification an environment the RFID tag is located (e.g., forscenarios where IIMS 105 is located outside an environment). DCS 160 maybe configured to retrieve the item information from RFID tags associatedwith each item included in item inventory 170 and provide theinformation to IIMS 105.

Other types of information retrieving mechanisms may be implementedwithin environment 110-1 associated with the antennae, includingpegboard displays, garment racks, shelf-end displays, cabinets, kiosks,backroom or warehouse racks, display cases, and point of sale orcheckout lane equipment. Further, although the following description ofcertain aspects of the invention involves RFID based shelf units, oneskilled in the art will appreciate that the present invention can beapplied as well with RFID readers associated with POS locations (e.g.,checkout lanes), warehouse racks, portal areas, etc. The characteristicsof the antennae (e.g., form factor), and the rate at which antennae areread, may require adjustment for use in applications other than shelves.For example, warehouse applications might require longer read range andless frequent data updates, while point of sale applications may requirevery fast data updates with possible lower read ranges. The type andfunctionality of the RFID based components and systems that may beimplemented with methods and systems consistent with the presentinvention is described in the previously mentioned U.S. Pat. No.7,084,769, which is incorporated by reference in its entirety.

Exemplary Environment 110-1

As described, system 100 allows item inventories 170 to be intelligentlymanaged by one or more environments 110. FIG. 2 shows a block diagram ofan exemplary environment 110-1 consistent with certain features of thepresent invention. As shown, environment 110-1 may include IIMS 105, aRequest Response Manager (RRM) 220, and DCS 160.

IIMS 105 may include a CPU 201, memory 202, display 204, and database215. CPU 201 may be any type of processor (or processors) known in theart. CPU 201 may be configured to execute instructions and performprocesses consistent with certain principles related to the presentinvention. Although FIG. 2 shows only one CPU 201 included in IIMS 105,one skilled in the art would realize that a number of differentarchitectures may be implemented by methods, systems, and articles ofmanufacture consistent with certain features related to the presentinvention. For example, CPU 201 may be replaced, or supplemented, by aplurality of processors with one or more of them performingmulti-tasking and/or multiprocessing operations. Display 204 may be anytype of device that presents information to a user, such as a computerscreen in a workstation, laptop, dumb terminal, kiosk, etc.

Database 215 may be one or more storage device systems that storeinformation used by IIMS 105 to perform the intelligent inventorymanagement features consistent with the present invention. Database 215may be controlled by a database server (not shown), such as an SQLdatabase server. Further, a Java DataBase Connectivity (JDBC) driver forthe SQL server may be used to access the SQL server database. Database215 may store information associated with each identifier included inthe RFID tags. Thus, for each Stock Keeping Unit (SKU) (i.e.,information associated with an item reflecting at least a certain typeof product (e.g., item type), made by a certain manufacturer, in acertain size, color, style, etc.), the item information stored indatabase 215 may be selected from:

1) A Universal Price Code (UPC) and/or an Electronic Price Code (EPC).Note that items made by a certain manufacturer in a certain size, color,etc. may have all the same UPC but each may have a unique EPC. Furtherdescription of EPCs is provided below with respect to the sectionentitled “EPC Writer.”

2) A current price of the item.

3) An indicator of a seasonality of the item. A seasonality indicatormay represent a relationship between an item and a period of timeassociated with different events or seasons, such as holidays, a timeframe surrounding a certain date of a special event (e.g., the SuperBowl), etc. For example, a soap product may have a seasonality indicatorrepresenting no seasonal characteristics, such as “no season,” wreathsmay have a “Christmas” indicator, charcoal may have a “summer”indicator, etc. Further, promotional items (e.g., those items that arebeing specially marketed by a manufacturer or retailer) may have aseasonality indicator associated with a time frame, such as “July 2003,”etc. The seasonality indicators may be used by ISSA 200 and/or a user todetermine when to remove or restock certain items in item inventory 170.

4) A shelf life of the item. A shelf life may be a period of time thatan item may be allowed to be included in item inventory 170. Forexample, perishable products, such as milk, may have a limited period oftime that they may be presented on a shelf for sale to a customer.Non-perishable products may also have a limited period of time to bepresent in inventory 170 based on one or more factors, such as previoussales of items of a similar type, limited promotional time frames, etc.

5) Historical data about the sales rate of each type of item. Thehistorical sales data may extend back a certain period of time, such asa certain number of days, hours, etc. The historical sales data may beformatted in such a manner that provides information reflecting aquantity of sold items of a given type over a period of time, such as atable including a column of sales data having 168 rows representing 7days multiplied by 24 hours. The column may have fewer rows for anenvironment that operates less than 24 hours per day, such as a retailstore or business that is not open round-the-clock. Further, database215 may include additional columns of sales rate data for an item, forexample representing certain conditions, such as a standard price, apromotional price, a holiday season, a clearance condition, etc. Holidayseasons may be extended (e.g., Christmas) or short (e.g., Memorial Day,July 4, Labor Day, etc.). Other situations that may produce unusualselling patterns (e.g., accelerated selling patterns) include the SuperBowl, or the days before predicted severe weather such as a blizzard orhurricane.

6) Historical out-of-stock data representing one or more conditions whena type of item has been unavailable in item inventory 170.

7) Historical data representing a number of times an item is picked upthen returned to a shelf without a purchase.

8) A shelf “volume” size of an item representing a size characteristicof a single package unit of an item. The size characteristic may bemeasured as a rectilinear solid or other types of geometrical spacesthat may be mathematically represented and manipulated by a processexecuted by a computer and/or user. For items that cannot be stacked ontop of each other, the shelf volume size may be considered to extend upto another shelf positioned adjacent to the shelf whereon an item iscurrently located.

9) One or more locations within environment 110-1 where the item ispreferably located, such as shelf numbers or warehouse locations.

10) Information summarizing shrinkage reflecting a movement of a certainnumber of items specific to time and place within environment 110-1. Forexample, shrinkage information may be associated with a condition wherea large number of items of a certain type are removed from a shelf in asmall amount of time.

11) Information summarizing out of stock events specific to time andplace within environment 110-1.

Additionally, for an item collection of a certain type (e.g., anindividual box of any type of item), database 215 may store iteminformation selected from:

1) The EPC of the item.

2) The UPC of the item to relate back to the SKU information describedabove.

3) Other types of information not directly known from the SKU (e.g.,color, style, size).

4) A serial number associated with the item (if other than the EPC).

5) A cost of the item to a business entity associated with environment110-1, such as a retailer.

6) A date the item was first placed in a location within environment110-1, such as a particular shelf.

7) An expiration date of the item (if any).

8) Item location information representing a current physical location ofthe item in environment 110-1 (or if sold, the last known location ofthe item).

9) A price an item sold was sold (if already sold).

10) A date the item was sold (if already sold).

11) A preferred customer number of a purchaser (if already sold)representing a unique number assigned to a user that purchases or maypurchase items located within environment 110-1.

Database 215 may be configured to store data in various data formats anddatabase configurations. For example, database 215 may store one or moretables that include information used by ISSA 200 to perform certainfunctions related to the present invention. These tables may include:

1) tblAlerts—a table that stores alerts and alert confirmationsassociated with certain events within environment 110-1.

2) tblCompany: a table that stores information about a business entity(e.g., company) that owns, leases, manages, and/or is associated withenvironment 110-1.

3) tblCurEPC—a table that stores information regarding current EPCs at agiven location within environment 110-1 (e.g., at a given shelf).

4) tblEPC: a table that stores information relating an EPC code toproduct information, such as manufacturer, SKU, and other types ofinformation associated with a product (e.g., an item).

5) tblEPCReader—a table that stores information that relates to an EPCreader device, such as reader 262.

6) tblEPCSkuBase—a table that stores information regarding a base levelinventory for an EPC reader device (e.g., reader 262) and any item typesassociated with the reader.

7) tblERPInv—a table that stores information associated with a currenttheoretical inventory (e.g., a planned or proposed inventory that shouldbe present in environment 110-1 as opposed to actual inventory) providedby an Enterprise Resource Planning system (ERP) or other types ofinventory systems. An ERP system is a business management system thatintegrates many facets of a business, including planning, manufacturing,sales, and marketing, such as those ERP systems provided by SAP, Oracle,and PeopleSoft.

8) tblInventoryAlertConfig: a table that stores configuration items foran inventory alert job (e.g., a task performed by IIMS 105 that providesalert messages based on one or more inventory conditions).

9) tblInventoryRemovalAlertConfig: a table that stores configurationdata for an Inventory Removal Alerts process.

10) tblManu—a table that stores information associated with one or moremanufacturers of items included in inventory 170.

11) tblReaderType—a table that stores information that defines actionsthat an EPC reader may perform (e.g., read, turn displays on/off, adjustpower level, etc.).

12) tblReaderTypeActions: a table that stores a list of possible actionsfor a given EPC reader.

13) tblRelatedEPC—a table that stores identification information for anyEPC readers that are related to one of another (e.g., connected to acommon shelf unit, associated with a common antenna or antennae, etc.).

14) tblRemEPC—a table that stores EPCs that are no longer located at agiven location within environment 110-1 (e.g., no longer on a designatedshelf).

15) tblRequestBroker—a table that stores information defining a requestbroker location and associated ports (e.g., TCP/IP port identifiers).

16) tblSku—a table that holds information about item SKU information.

17) tblSkuCat—a table that stores information regarding one or morecategories for various items.

18) tblStore: a table that stores information about environment 110-1.

19) tblUser—a table storing a list of any users that are authorized toaccess ISSA 200.

20) tblVirtualCommands: a table that stores a list of virtual commandsfor an EPC reader. The command list may include commands that may besent to an RFID reader to direct the RFID tag to perform one or moreoperations, such as storing item information.

One skilled in the art will appreciate that the above listed tables areexemplary and not intended to be limiting. Database 215 may include moreor fewer tables that are configured to store various types ofinformation used by ISSA 200.

Memory 202 may be one or more known type of storage devices that storedata used by IIMS 105. Memory 202 may be, but is not limited to, amagnetic, semiconductor, and/or optical type storage device. Memory 202may also be a storage device that allows CPU 201 quick access to data,such as a cache memory. In one configuration consistent with selectedfeatures related to the present invention, memory 202 may store dataand/or program instructions (e.g., applications) to implement methodsconsistent with certain features related to the present invention. Amongthe software that may be included in memory 202 is Intelligent ShelfSoftware Application (ISSA) 200.

ISSA 200

ISSA 200 may be an application program, such as a web-enabledapplication, that provides information to a user, or to an ERP system.Accordingly, ISSA 200 may be configured to receive data from, and supplydata to, a user or an ERP system (or other types of business managementsystems). ISSA 200 may temporarily store inventory data collected fromDCS 160 in database 215 before transferring portions of the data to theuser and/or an ERP system. In one aspect of the invention, a user maycustomize ISSA 200 to determine how much inventory data is managed andstored in database 215 and how inventory data is kept in an ISSA systemlocated at another environment, such as environment 110-N.

Additionally, ISSA 200 may execute and/or operate with one or moresecurity processes that are configured to control access to thefunctions of ISSA 200. For example, ISSA 200 may execute a securityprocess that requires a user to provide a valid username and password(or other form of identification) to access the features provided byIIMS 105, including those performed by ISSA 200. Further, ISSA 200 mayassign one or more roles to a user. Based on an assigned role, ISSA 200(or any other application and/or process included in IIMS 105) maydetermine which tasks (e.g., programs executed by ISSA 200 via CPU 201)a corresponding user may access. Further, ISSA 200 may control whether auser is to receive certain types of alerts that may be received by ISSA200 from other components within environment 110-1, such as DCS 160.Also, ISSA 200 may include a process that, when executed by CPU 201,creates and maintains a log file of any transactions performed by auser, such as adding data, requesting data, and/or modifying data indatabase 215.

ISSA 100 may include one or more user interfaces 210 that allow a userto exchange information with ISSA 200, such as through display 204. Userinterface 210 allows a user to request data in the form of commands orqueries that are processed by business logic/transaction engine 230.

Business logic/transaction engine 230 may be software, when executed byCPU 201, manages one or more tasks (i.e., processes) consistent withcertain features related to the present invention. In one aspect, thesetasks may include an out of stock control task 231, shrinkage monitoringtask 232, rapid recall task 233, EPC writer task 234, other featurestask 235, and alerts task 239.

Out of Stock Task 231

Out of stock control task 231 provides management functions to ISSA 200associated with item inventory 170. For example, out of stock controltask 231 may perform an inventory process that determines, on commandand/or periodically, a physical inventory of items included in some orall of inventory 170, such as an actual inventory of items currentlyresting on a store shelf. Task 231 may allow a user (e.g., customer,employee, etc.) to request and view the results of the inventory processon a display device, such as peripheral device 255 or display 204. Task231 may determine whether any item types are out of stock (e.g., notavailable for purchase by a customer because no items of that type arepositioned in a location that the customer may collect and purchase).Task 231 may create a list of these out of stock item types andprioritize them based on or more factors, such as lost profits due tothe item type being out of stock for a previous period of time (e.g.,last month), lost profits due to the item type being out of stock at thetime the out of stock condition was determined, availability elsewherein environment 110-1 (e.g., in a back storage room), and sale term(e.g., a new release of a popular DVD, snow shovel sales during ablizzard, etc.).

Additionally, out of stock control task 231 may perform an itemmisplacement process that creates a log of any items that are positionedin an incorrect location within environment 110-1, such as when an itemis placed on a wrong shelf. Further, task 231 may generate and/orforward a misplacement alert message when an item is determined to bemisplaced. Also, task 231 may perform a shelf count threshold processthat allows a user and/or ISSA 200 to receive and/or be alerted in theevent of, an indication of any item types that have a shelf count belowa threshold value for a given location. A shelf count represents anumber of items of a certain type that are actually present in a givenlocation associated with the item type. For example, in a supermarket, acertain shelf may be assigned to a type of item (e.g., canned soup). Theshelf count of the exemplary item type would represent how many items ofa particular type are located in the assigned shelf. In one aspect ofthe invention, the threshold value may be determined by a user and/orcalculated by ISSA 200 based on one or more conditions, such as how manyitems of the certain type were previously removed from the givenlocation during the same day, a week earlier, during the hours from apresent time until the environment 110-1 is no longer open to customers,and/or until a next scheduled restocking of the item type. Also, thethreshold value may be adjusted by one or more factors representingcertain conditions associated with the item or external conditions, suchas whether the item type is exposed to a sale promotion, a holidayshopping season, a time frame corresponding to a special event (e.g.,the Super Bowl, weather conditions etc.).

In addition to providing feedback to ISSA 200 and/or a user regardinginventory conditions associated with one or more item types in inventory170, out of stock control task 231 may also determine how much revenue(e.g., money) is being lost as a function of a certain period of time(e.g., lost revenue per hour) based on an item being out of stock (e.g.,unavailable to a customer for purchase). Also, out of stock control task231 may determine one or more factors that may influence the sale ofitems of a particular type. These factors may include, but are notlimited to, pricing of the items of the item type, seasonalcharacteristics associated with the sale of the items, and sales ofother types of items included in inventory 170.

Out of stock control task 231 may also determine one or more alternatelocations within, and/or external to, environment 110-1 that a type ofitem may be repositioned based on previous sales associated with theitem type and/or whether the item type is out of stock. Further, when anitem type is determined to be out of stock, task 231 may generate amessage to be displayed on a display device reflecting the out of stockcondition. The out of stock message may also include other information,such as an apology for the out of stock condition, an offer for adiscount of the sale price of another item of a type similar to the outof stock item type (e.g., store or generic brand product), a rain checkfor the out of stock item, and directions to an alternate environment(e.g., nearby store) that includes an item of the same type in itsinventory and the item's price.

Shrinkage Task 232

Shrinkage task 232 may perform processes that manage the shrinkage ofitems included in inventory 170, such as the loss of inventory throughtheft, bookkeeping errors, and misplacement. In one aspect of theinvention, shrinkage task 232 may perform a process that determines,and/or allows a user to receive information reflecting, when physicalshelf inventory and/or theoretical shelf inventory are off by a certainpercentage. Theoretical shelf inventory represents a value determined byISSA 200 corresponding to an inventory of items that should be locatedin a particular location in environment 110-1. For example, in a case ofhigh-value merchandise, a user may wish to know when the physical andtheoretical inventory quantities are different by only one unit.Further, shrinkage task 232 may perform a process that determines,and/or allows a user to view, which locations of environment 110-1 areexperiencing the greatest shrinkage. Also, task 232 may perform aprocess that determines, and/or allows a user to view or be alerted,when items are removed from the shelf in a predetermined quantity, suchas a quantity defined by a store manager. The predetermined quantity mayrepresent a large quantity of items that are removed in a relativelyshort time, which may possibly indicate a theft condition. The removalof a large quantity of items, however, may also denote an exceptionallygood customer deserving immediate customer service. Accordingly,shrinkage task 232 may record a detected shrinkage condition in a logand may send an interrupt signal to one or more peripheral devices, suchas silent alarms, flashing lights over a gondola, a camera or video timestamp, or an audio “thank you message.” Further, shrinkage task 232 maycreate and provide a message to a user (e.g., sales clerk, employee ofenvironment 110-1, etc.) that includes information to dispatch the userto the area to offer assistance to a “valued customer.”

Rapid Recall Task 233

Rapid recall task 233 may perform one or more processes that allow auser or business entity (e.g., retailer, item manufacturer, etc.) totrace items based on critical data, such as lot number, age, etc. Task233 may determine and provide information about an item or items thatmay need to be removed from a shelf, or whose sales should beaccelerated for other reasons. For example, certain types of items mayhave an associated expiration date determined by their manufacture, suchas pharmaceuticals, health and beauty products, and perishable goods(e.g., foodstuffs). Although some of these items may still be safe (andpharmaceuticals still be effective) for some time beyond the expirationdate, accepted practice may be not to sell the items after theirexpiration date. Therefore, shrinkage task 233 may identify items thatare approaching an expiration date and provide information to a userthat indicate the expiration date condition. Further, task 233 mayprovide suggestions to promote the sale of these items before theirexpiration date, such as determining an alternate location in, oroutside, environment 110-1 that has a history of higher item sales(e.g., a front of a shelf), and/or suggestions to sell the items atlower prices.

Also, task 233 may provide information to a user when an item or itemshave expired so that the items may be removed from inventory 170. Rapidrecall task 233 may also provide information associated with purchaseplanning for item types. For example, an item type that is not sellingwell (e.g., sales of the item are not reaching expected levels) beforeits corresponding expiration date may be indicative of excess inventory.Accordingly, task 233 may provide information that reflects arelationship between previous sales of an item type and expiration datesfor items of that item type.

Additionally, rapid recall task 233 may access database 215 to collectshelf life information associated with each item in inventory 170. Shelflife information may represent an approximate useful life of an item,which may be determined from an expiration date for certain types ofitems. Alternatively, shelf life may represent a usual turnover time forthe item, regardless of its useful life or expiration date. Task 233 maydetermine when an item has exceeded its shelf life and provide anindication of this condition to a user, via a display device (e.g.,display 204).

Rapid recall task 233 may also access database 215 to collecttime-stamped temperature data associated with certain items in inventory170. The temperature data may reflect a temperature value of an areaproximate to a one or more items stored in environment 110-1, such as arefrigerated shelf unit. Rapid recall task 233 may use the temperaturedata to calculate a reduced shelf life or predict spoilage fortemperature dependent items, such as milk. Further, task 233 may provideand/or forward an alert message to a user that reflects a condition whenthe temperature of a particular area (e.g., refrigerated shelf unit)falls below an acceptable level for any items stored in the area.

Further, for any items of certain types that have a shelf life orexpiration date, rapid recall task 233 may provide, as an additionalsafety feature against database error, an alert to one or more locationswithin or external to environment 110-1. For example, an alert message(e.g., sound and/or display message) may be provided at a POS locationor checkout lane to have the cashier double-check the expiration datenormally printed on the package for an item about to be purchased at thePOS location.

Rapid recall task 233 may also determine which items have been modifiedby a manufacturer or supplier and, based on this determination, provideinformation reflecting possible actions that may help move olderinventory. For example, products (i.e., items) sometimes undergo a stylechange, such as a new package style, a different size, a color change, aflavor change, etc. While the existing product is still good, a retailermay want to sell off existing older stock as soon as possible becausecustomers may be reluctant to purchase a perceivably older product.Accordingly, rapid recall task 233 allows the retailer to locate suchrestyled merchandise and to move it to more marketable locations, suchas onto the sales floor, in the front of shelves, and/or offer themerchandise at a discounted price to move the older merchandise frominventory 170.

Items also may be defective when they arrive in environment 110-1. Inthe case of pharmaceuticals, it may be imperative to remove the itemimmediately to prevent possible health risks. These items may bedestroyed at environment 110-1 or returned to the manufacturer. Further,a defective item may need to be recalled by the manufacturer.Accordingly, removing the defective item from inventory 170 before it ispurchased may save time for a retailer and the customer, as well aspermit the item to be returned to the manufacturer intact in itsoriginal package. Rapid recall task 233 may perform one or moreprocesses that address these types of situations. For example, in somecases, an item may have a defect that renders it less valuable, whilenot constituting a health or safety risk, such as an item with a missingpart, a cosmetic defect, a mismatched part, etc. A manufacturer may beable to identify these items after they have been delivered toenvironment 110-1 based on an identification number associated with thedelivery (e.g., lot numbers). However, once a large number of items arewarehoused and/or shipped, different lots may become mixed together andthe retailer may have problems identifying the items affected withoutopening the packages. However, with the RFID tagging features associatedwith certain aspects of the present invention, the manufacturer mayidentify a range of RFID serial numbers that were incorrectly packaged.Environment 110-1 may receive these serial numbers and allow ISSA 200 toidentify the defective items in inventory 170. Rapid recall task 233 mayperform a process that searches database 215 for items associated withthe received serial numbers for the defective items and provide thisinformation to a user, perhaps through display 204 or other peripheraldevices. The user may then offer customers various marketing incentivesto move the defective items from inventory 170. For example, a customermay be offered a discount on a defective item for purchasing it “as-is.”Upon sale of the product, a cashier may either take the customer's nameand address and relay this information to the manufacturer, or thecustomer may be given a key number with which to order a missing partfree of charge from the manufacturer, such as through the Internet.Alternately the known missing part may be shipped to the retailer to behanded out as a free “service package.” Procedures like these would savethe manufacturer shipping and handling costs involved in returning theentire package. Further, a retailer might even use this feature to offera special discount to a customer willing to purchase an “open carton” orsuch as product returned by another customer, that may lack items notdue to manufacturer's fault. Using the RFID tagged items, a retailer mayoffer a special discount on packages damaged in the retailer's inventory170, without worrying that unscrupulous customers might damage goodboxes on the shelf and seek to obtain a discount.

Additionally, certain types of items, such as software products, oftencontain known errors or “bugs,” that may require a remedial “correctivepatch.” For example, a computer readable medium (e.g., CD-ROM, DVD,magnetic disk, etc.) including one or more programs and data may requirea revision comprising only a few megabytes that can be downloaded overthe Internet. Rapid recall task 233 may identify these types ofdefective items using the RFID tags 280 in inventory 170. Consequently,the retailer and/or manufacturer may offer a customer a small discountto purchase an “out-of-date” or “buggy” product, with the customerunderstanding that the product may be brought up to specification with afew minutes' time on the Internet to download the corrective code.Further, environment 110-1 may provide one or more workstations that auser may use to download the corrective code while in environment 110-1.

EPC Writer 234

EPC writer 234 may be a process that is used to aid ISSA 200 write EPCsto particular RFID tags 280. In one aspect of the invention, EPC writer234 may access database 215 to obtain identification numbers, such as aUPC, for particular items that are to be tagged with an EPC on an RFIDtag 280. Further description of these aspects of the invention isdescribed below with respect to the section, EPC Writer.

Other Features Task 235

Other features task 235 may perform one or more applications associatedwith advertising, price sensitivity, sales optimization, automaticpricing, and customer information and services.

In one aspect of the invention, other features task 235 includes anAdvertising, Price Sensitivity, and Sales Optimization (APSSO)application that determines relationships reflecting how advertising(e.g., marketing and/or presentment of items) and/or price influencesthe sales or possible sales of items or item types that are presented tocustomers that interact with inventory 170. This application may create,on demand or periodically, a summary of how often an item or items of acertain type are physically moved from their current location inenvironment 110-1, such as when an item is taken off of a shelf andreplaced. Thus, the APSSO application may request and receive periodicinventory updates of inventory data reflecting a current inventory ofitems in inventory 170. The APSSO application may leverage the out ofstock task 231 to collect the inventory information, or alternativelysend commands to inventory request interface 250 to collect theinformation itself, such as requesting an inventory reading a shelf'scontents at least every few seconds. The APSSO application may comparethe collected inventory information to sale rate data associated withthe items corresponding to the collected inventory information toprovide an indication (e.g., a ratio) of a number of item examinationevents per single purchase event. The indication, or ratio, may describehow much attention an item is getting from customers, as opposed to therate of item purchases. The data could be correlated with locationinformation associated with the item, for instance, whether the item wasat eye level, on a shelf-end display, positioned in the front of astore, positioned in a promotional display, positioned in the back ofthe store, etc.

The term eye level, as used herein, may refer to one or more distancesextending from the floor of environment 110-1 where items are displayedfor purchase, such as 5 feet to 7 feet high. One skilled in the art willappreciate that the term eye level is not intended to be limited by thisexemplary range of distances. Any distance from the bottom of astructure that supports item(s) that rests on the floor of environment110-1 may be associated with the term eye level without departing fromthe scope of the invention. Further, the distance associated with theterm eye level may be based on the type of environment 110-1 represents.For example, a clothing manufacturer and/or retailer may determine thateye level refers to a distance lower than that of a distance defined bya food retailer.

Also, the APSSO application may determine how often an item is purchasedin pairs, triples, etc. Further, for a given item type, the APSSOapplication may identify other items of other types that are moved fromtheir current position in environment 110-1 at, or about (e.g., within afew seconds, minutes, etc.), the same time as the given item type has anitem moved, known as a correlated time of purchase. The APSSOapplication may also determine which items of a given type, if any, havenot moved from their respective positions for a defined time period.Alternatively, or additionally, the APSSO application may determine whatitems of a given type have been moved and replaced for a defined timeperiod (i.e., items that are not being purchased by the customers). And,the APSSO application may identify any items of a given type that haveundergone a price change within a previous period of time, such as thepast day, week, month, etc. The APSSO application may generate a list ofthese price changed items and provide the list to a user via aperipheral device (e.g., device 255) and/or display 204. Further, theAPSSO application may determine, based on the identified items withprice changes, a relationship between these items and the number of itemexamination events (e.g., when a customer picks up an item and replacesit).

In one aspect of the invention, the APSSO application may interact withan expert system (internal or external to IIMS 105) to analyzehistorical data on cross-item or correlated sales, sales velocity (i.e.,how rapidly or slowly are items being sold and their respectiveinventory being depleted), price-sales sensitivity (e.g., a relationshipbetween previous sales of an item type and sale price events for thatitem type), seasonality, etc., to suggest improvements in store layoutand shelf organization. That is, the expert system and/or the APSSOapplication may determine and provide suggestions to a user via aperipheral device on alternative locations for certain item types basedon the above analyzed information.

Other features task 235 may also include an Automatic PricingApplication (APP) that performs processes that manage the sale price ofan item. In one aspect of the invention, the APP may receive and/orcollect price plans from database 215 (or any other memory device thatmay store these plans) and automatically update a displayed item saleprice on a display device (e.g., an LCD mounted on a shelf supportingthe item). A price plan may represent a price schedule for certain orall item types in inventory 170 that is generated by a price planprocess executed by a computing device (e.g., IIMS 105) or generated bya user (e.g., retail store manager). For example, an exemplary priceplan may include scheduled promotions that suggest reducing the price ofcertain item types based on these promotions. Further, a price plan mayconsider season or time dependent conditions, such as holidays, weatherconditions, etc., to determine how to modify the price of an item type.For instance, the price plan process may collect periodic weatherinformation from a server system that accesses and stores currentweather data for a surrounding area proximate to environment 110-1(e.g., 50-100 mile radius, city limits, etc.) The price plan may use thecollected weather information to determine whether the sale price ofcertain items (e.g., snow shovels, stock wood studs, etc.) should beadjusted. Alternatively, a user (e.g., store manager) may collect, orautomatically receive, the weather information and adjust the salesprice manually through the price plan process and/or the APP.

The APP may also correlate, in real time, the price of a target itemwith the age of the shelf inventory associated with the target item, anamount of items of the same type as the target item in theoreticalinventory, and the sales velocity of other item types whose salescorrelate with the sale of the target item. The APP may generate areport reflecting the correlation(s) and provide the report on demand oron a scheduled basis to a peripheral device (e.g., storage device,display device, printer, etc.).

The other features task 235 may also include a Customer Information andSpecial Services Application (CISSA) that performs processes thatprovide users (e.g., customers shopping in environment 110-1) withassistance in locating an item of interest under a variety of specialcircumstances. In one aspect of the invention, the CISSA may alsoprovide item inventory availability information to remote users (i.e.,customers). For example, a user remotely located from environment 110-1may access a web site hosted by a server operated in association withenvironment 110-1 through network 180. Using the web site, the user mayrequest the availability of one or more items of one or more types atenvironment 110-1 (e.g., is an item in inventory 170). The CISSA mayreceive the request from the computer server and determine whether therequest items are available in inventory 170. In one aspect of theinvention, the CISSA may access database 215 to collect inventoryinformation collected by out of stock task 231. Alternatively, oradditionally, the CISSA may request a search for the requested itemsthroughout environment 110-1 by providing one or more commands to RRM220 and DCS 160.

Further, the CISSA may generate a request for the availability of therequested items at one or more remote environments (e.g., environment110-N) and receive back a response indicating whether the requesteditem(s) are available at these respective locations. In this scenario,the remote environment may perform a local inventory search process todetermine whether the item is currently in stock. Based on the localsearch, the remote environment may provide a response message toenvironment 110-1 indicating the result of the local search (e.g., theitem is or is not available at that location). Alternatively, remoteenvironments may periodically provide their current inventory data toenvironment 110-1. ISSA 200 may receive and store this receivedinformation in a database (e.g., database 215) for access by the CISSAas needed.

Based on the received information indicating whether the item isavailable, the CISSA may provide the user (via the computer server andnetwork 180) a response indicating a real-time availability of arequested item at environment 110-1 and/or at alternate environments,such as a user's favorite retail outlet or the nearest three or fouralternative outlets.

Additionally, the CISSA may provide the same item availability functionsdescribed above through computing devices located within environment110-1 (e.g., kiosks located in a store). For example, when a customerarrives at a store (e.g., environment 110-1) expecting to find aparticular item and is disappointed to learn the item is out of stock,the customer may request the item's availability using a kiosk locatedwithin the store. In addition to one or more alternative store addressesthat have the item in stock, the kiosk may display to the customer anoffer for an inconvenience discount (e.g., a cents off coupon for theitem or perhaps another item). The customer may accept the discount by,for example, providing a simple code word/number of their choice. Thediscount will be valid for a limited period of time and the customerneed only use the chosen word/number within 24 or 48 hours this codeword/number will entitle them to the discount at the alternative stores.Further, the CISSA may also provide alternate location information on adisplay device mounted on a shelf unit supporting an item or group ofitems. For example, for any item that is not in stock, the displaydevice may display the location of, and/or directions to, the nearestalternate location (e.g., store) that currently includes the item ininventory. For items which are not out-of-stock, the display device mayshow the item price instead of alternate locations. As described above,the alternate locations may be determined based on these locationsperforming, on a periodic or a demand basis, an inventory search for therequested item.

Alert Monitor 239

Alert Monitor 239 may perform one or more processes that notify a userof certain events. In one aspect of the invention, alert monitor 239 maynotify a user through e-mail, a pager, a cell phone, an audible orvisual signal, etc. Alert monitor 239 may include the appropriatesoftware to interact with other devices, software, and/or computingsystems that include the infrastructure to facilitate communicationsover a particular medium. That is, alert monitor 239 may send an alertmessage to an output interface that translates the message into a formatcompatible with a message relaying or provisioning system (e.g.,wireless network device, etc.). Alert monitor 239 may receive datareflecting an event from interface 250 and/or other processes, such asone of tasks 231-234, and formulate an alert message accordingly. Thereceived data may reflect a pending item known to be in an alternatelocation (e.g., back room) so that a user (e.g., retailer employee) maybring the spare stock onto a retail floor. If the item out of stockcannot be replenished from the alternate location, the user and/or ISSA200 may reorder the item. Further, the received data may reflect amalfunction in one or more components within environment 110-1, such asan antenna 270.

In one aspect of the invention, alert monitor 239 may operate on an“exception” basis. That is, providing alert messages as an event isdetected to indicate to a user when something unusual happened. Also,alert monitor 239 may operate on an escalation basis, where repeated orprolonged events would be given a higher priority. For example, a stockclerk might be alerted whenever an item was approaching an out of stocksituation, or when a single shelf malfunctioned. Further, a departmentmanager might be alerted if several types of items were out of stock, ifan out of stock situation persisted for more than a day, and if agondola went out of service.

ISSA 200 may also include one or more inventory request interfaces 250that collects RFID tag reader events and may receive data and/orrequests from business layer 230 and request response manager 220. Theexchange of commands, data, and/or information within environment 110-1denote a typical information flow, which may be associated with a higherlevel entity, such as inventory request interface 250 sending a commandto a lower level entity such as DCS 160, and in return, receiving datafrom the DCS 160. Further, the information flow may also be reversed.For example, DCS 160 may request information from ISSA 200, such asantenna tuning data, or may report certain events ISSA 200, such as amalfunction in one or more components (e.g., antenna 270). Interface 250may be an Active Server Page (ASP) that other applications may send HTTPinformation. Interface 250 may receive EPC data from RRM 220 and sendEPC eXtensible Markup Language (XML) data to a message queue that is setup for each reader 262 in DCS 160.

ISSA 200 may be configured using different types of architectures. Forexample, in one aspect of the invention, ISSA 200 may be configured in athree-tier architecture structure that includes a top level associatedwith user interface 210, a middle layer associated with businesslogic/transaction 230, and a bottom layer associated with database 215.

The top layer user Interface 210 may be software that runs on a webbrowser, such as Internet Explorer (v5.0 or higher) from Microsoft®Corp. User interface 210 may, when executed by CPU 201, send requestsand receive responses from a computer system, such as a server (e.g.,Microsoft® Internet Information Server (IIS)). The server may return XMLand eXtensible Stylesheet Language (XSL) information to user interface210. The XML and XSL information may be applied together by userinterface 210 using one of many Document Object Model (DOM) techniques(e.g., Microsoft DOM). When the XML and XSL are applied by userinterface 210, content presented in Hypertext Markup Language (HTML) maybe displayed on display 204 through the browser executed by IIMS 105.Although the above examples described XML and HTML based services, oneskilled in the art will appreciate that many types of data processingand presentation languages may be implemented without departing from thescope of the invention.

The middle or Business Logic tier 230 exposes business logic to ISSA200. Business logic components may be developed, for example, usingMicrosoft.NET Classes, Microsoft VB.NET or C#. Furthermore, .NET Classcomponents may be created from within ASP.NET Web Services. Theseclasses may be stateless, and multi-threaded unless otherwise specifiedby business logic 230.

The database 215 tier may store data used to perform one or moreinventory management processes consistent with certain features of theinvention. In one aspect of the invention, there may be no businesslogic in this tier, that enables IIMS 105 to implement multiple types ofdatabases. Database 215 may be accessed using different types ofdatabase languages, depending on the architecture the database isconfigured upon. For example, Structured Query Language (SQL) commandsvia ActiveX Data Objects (ADO) and/or Open DataBase Connectivity (ODBC)over Transmission Control Protocol/Internet Protocol (TCP/IP). Further,to prevent mismanagement of the information, database 215 tier may beconfigured to allow access only by business logic tier 230.

RRM 220

RRM 220 may be an application that is executed by a computing system(e.g., an RRM system (not shown)) to provide a bridge (i.e., interface)between high level components (e.g., software such as ISSA 200) andlower level components (e.g., hardware/firmware, such as DCS 160).Although FIG. 2 shows RRM 220 as a separate component, RRM 220 may bestored in memory 202 and executed by CPU 201. In one aspect of theinvention, RRM 220 may communicate between inventory request interface250 and one or more primary controllers 260, located in DCS 160, orprimary controller proxies (not shown) located within RRM 220, whichperform data handling or analysis on information collected from RFIDtags 280 in inventory 170. RRM 220 may include a user interface thatallows a user to view a current status of RRM 220. The user interfacemay be accessed from IIMS 105 which may execute RRM 220.

In one aspect of the invention, RRM 220 may load XML configurationdocuments from an RRM configuration interface (not shown) included inISSA 200. The configuration file may include one or more event listsand/or command lists, which are a list of events provided by DCS 160 andcommands provided by ISSA 200, respectively. RRM 220 may create arequest broker 222 for each event list in the configuration file from aconfiguration XML document provided by ISSA 200 (e.g., inventory requestinterface 250). Alternatively, RRM 220 may create a primary controllerproxy (not shown) for each event list. A primary controller proxy isfurther explained below with respect to DCS 160 and primary controller260. Also, RRM 220 may create one or more response brokers 224 thathandle responses from one or more primary controllers 260 or primarycontroller proxies included within RRM 220. A response broker 224 mayalso send acknowledgment and/or failure information to request broker222 indicating whether a response has been properly received fromprimary controller 260. In one aspect of the invention, response broker224 may initiate an object-oriented class based on a reader 262 thatreceives read data and converts it to an EPC XML document. Responsebroker 224 may also send the EPC XML document to ISSA 200, if available.If the ISSA 200 is not available at that time, response broker 224 maystore the EPC XML document in a queue until ISSA 200 is available.

When request broker 222 is initiated by RRM 220, it may be sent a listof commands from ISSA 200. Request broker 222 may access the receivedlist and execute each command. After each command is executed, requestbroker 222 may wait for a response from a response broker 224, such asacknowledgement or failure response. If there is no response fromresponse broker 224 within a certain time period (that may be defined inthe command list), or a failure message is returned, another commandlist may executed in response to the failure. On the other hand, if anacknowledgement is received from response broker 224, then requestbroker 222 may execute the next command in the command list. Once allcommands in a command list are executed, request broker 222 mayre-execute the commands in the command list in the original order ofexecution.

Response broker 224 monitors for any responses provided by primarycontroller 260 or a primary controller proxy included within RRM 220.When a response arrives, response broker 224 may determine a responseInternet Protocol (IP) address and creates a thread to process thereceived response while continuing to monitor for any additionalincoming responses. Based on a received response from primary controller260, response broker 224 may provide an appropriate request broker 222with an acknowledgment or failure information representing the status ofthe broker's request. The appropriate response broker 222 may be thebroker that executed a command or request that corresponds to thereceived response.

In the event the received response contains data, response broker 224may dynamically initiate a method of an object to parse the data basedon the configuration XML. Each class that is initiated may returnsimilar EPC XML data. Response broker 224 may place each returned EPCXML data into a data structure, such as a table. Response broker 224 mayalso retrieve one or more read sequences for a given reader 262 from thetable (e.g., a sequence of read commands that retrieve EPC informationfrom certain RFID tags 280).

If response broker 224 determines that there is EPC XML data left in thequeue for a current reader 262, then response broker 264 may send thedata to ISSA 200. In one aspect of the invention, response broker 224may send the EPC XML data from the queue in a particular sequence, suchas oldest to newest. Once the queued EPC XML data is provided to ISSA200, response broker 224 may then send the current EPC XML received. Onthe other hand, if there is no EPC XML data in the queue for the currentreader 262, then the current EPC XML data is passed to the ISSA 200. Atthat time, if ISSA 200 is unavailable, then response broker 224 mayplace the current EPC XML in the queue.

In one aspect of the invention, ISSA 200 may request data (e.g., providea read command) on demand (e.g., requests with response times of a fewseconds or less) or periodically, such as requests that are initiatedautomatically on set schedules (e.g., every minute, hour, day, etc.).DCS 160 may acquire the requested data from RFID tags 280 through one ormore antenna 270. The rate of acquisition of the data may be based onthe number of RFID tags 280 included in inventory 170. Thus, forexample, DCS 160 may collect the requested data within a few seconds foran inventory including a few hundred of tagged items or within a fewminutes for much larger inventories, such as those including thousandsof RFID tagged items. It is the responsibility of RRM 220 to manage thecollection of the data through the components operating within DCS 160.For example, RRM 220 may be configured to sequentially provide a queryfor requested data to several RFID tag reader devices (e.g., reader 262)that are dedicated to collecting item information from RFID tagspositioned in different locations within environment 170. DCS 160 andRFID tag data collection

DCS 160 may be a collection of hardware, firmware, and/or software thatperform data collection functions consistent with certain aspectsrelated to the present invention. DCS 160 may include a primarycontroller 260, one or more readers 262, and one or more secondarycontrollers 266. DCS 160 may control one or more antenna 270 that areassociated with (e.g., mounted on) corresponding support structures(e.g., shelf units) from which one or more items rest. The items ininventory 170 may each be tagged with RFID tags 280 that include iteminformation, such as an EPC reflecting various characteristicsassociated with the respective item. When a corresponding antenna 270 isactivated by DCS 160, information within any RFID tags 280 locatedwithin a readable proximity of the activated antenna may be retrievedand provided to DCS 160. The RFID tags 280 respond to RF energy emittedby antenna 270, and this response is sensed by reader 262, which returnsdigital serial data to the primary controller 260. The digital serialdata may be parsed by primary controller 260 and then returned toresponse broker 224 for further processing by ISSA 200.

Primary controller 260 may be a device and/or process that monitors forand receives requests (e.g., commands) from request broker 222 andconsequently generates a series of corresponding commands specific to areader 262 that environment 110-1 may be using to access particularitems in inventory 170. In one aspect of the invention, the commandsprovided by a request broker 222 may be formatted in accordance with anetwork protocol, for example, the TCP/IP protocol. Primary controller260 may send the received commands (e.g., TCP/IP packets) to reader 262and/or one or more secondary controllers 266. In another aspect of theinvention, controller 260 may pass the commands to reader 262 and/or oneor more secondary controllers 266 in the form of RS-485 or other typesof serial communication protocols. Table I shows a list of exemplarycommands that primary controller 260 may provide to reader 262 and/orsecondary controllers 266.

TABLE I Exemplary Primary Controller Commands EXEMPLARY COMMAND Selectan antenna 270 Place reader 262 in active mode Adjust a power level ofreader 262 for the selected antenna 270 Perform a first read operationDetermine which EPC numbers have been read Prevent the read tag(s) fromresponding further during a current read cycle Perform additional readoperations until no more EPC numbers are read Place reader 262 instandby mode De-select the antenna 270 Continue with the next antenna270 to be read

Primary controller 260 also monitors for a response from reader 262and/or secondary controller 266 that was sent one or more commands.Based on whether a response is received and the type of response,primary controller 260 may generate and send acknowledgment,non-acknowledgment (e.g., failure), and/or read information to responsebroker 224. The read information may include EPC information associatedwith the RFID tags 280 in inventory 170. For example, primary controller260 may provide one or more EPC numbers to response broker 224 each timea read operation is completed by reader 262. Alternatively, primarycontroller 260 may store the EPC numbers temporarily in a memory device(not shown). Once a certain number of RFID tags 280 for one or moreantennae 270 have been read by reader 262 (e.g., all of tags, a portionof the tags, etc.), primary controller 260 may also perform a batchtransfer process that provides the read data (e.g., EPC data) all atonce, or in groups, to response broker 224.

In another aspect of the invention, primary controller 260 may adjustfor any differences in a received command or data stream that may bepeculiar to a reader 262 that the controller may use to read informationfrom RFID tags 280. Primary controller 260 may use any of a number ofreaders 262 so long as the chosen reader 262 is physically able to driveone or more antennae 270. Each antenna 270 may be configured to becompatible with one or more different types of readers 262. In oneaspect of the invention, a given antenna 270 may be optimized (i.e.,tuned) for one frequency, so that the antenna 270 may work with anyreader 262 that uses the same frequency. Accordingly, more than onereader 262 may activate any given antenna 270 within environment 110-1as long as the reader 262 provides its signals using the frequency tunedto that given antenna 270.

As explained above, although FIG. 2 shows primary controller 260 as partof DCS 160, controller 260 may be implemented as a software primarycontroller proxy (not shown) within the RRM 220. Accordingly,communications from the primary controller proxy software may leave theRRM 220 as TCP/IP commands and are converted to RS-485 datacommunications by a separate device and/or process (not shown).

Reader 262 may be one or more of any type of off-the-shelf RFID readersprovided by many different manufacturers, such as the I-CODE readerprovided by Philips®. More than one type of reader 262 may beimplemented within DCS 160, as long as primary controller 260 (or anequivalent device dedicated to communicate with reader 262) isconfigured to communicate with the reader 262 (e.g., provide validcommands and properly interpreting returned data). Although FIG. 2 showsreader 262 as a separate component within DCS 160, primary controller260 and reader 262 may be physically combined in a single electronicentity. Depending on the type of environment 110-1 and/or item inventory170, one, several, several hundred, etc. readers 262 may be used by DCS160 to collect item information from inventory 170. Although each reader262 may be associated with its own primary controller 260, a singleprimary controller 260 may be assigned to work with one or more readers262 to facilitate collecting item information from inventory 170.

Secondary Controller 266

Besides communicating with reader 262, primary controller 260 alsocommunicates with one or more secondary controllers 266. Secondarycontroller 266 is a computing device and/or process that may select oneor more antennae 270 by controlling electronic components that act asswitches to activate or deactivate a corresponding antenna 270. Eachsecondary controller 266 may be physically located proximate to andconnected with a group of antennae 270, such as several antennaecontained within a shelf or localized fixture that store items includedin inventory 170. For example, environment 110-1 may have hundreds ofsecondary controllers 266 and thousands of antennae 270. Further,secondary controller 266 may also, upon receiving one or more commandsfrom primary controller 260, operate a peripheral device 255 to displayitem information from RFID tags 280 included in item inventory 170and/or provide inventory information to a user. For example, peripheraldevice 255 may be a display mounted on a front edge of a shelf thatsupports one or more items. Alternately, peripheral device 255 may beconnected directly to a serial data bus that communicates betweenprimary controller 260 and secondary controller 266. Further, peripheraldevice 255 may be connected to a dedicated bus that is not tied tosecondary controllers 266 (e.g., USB). Besides output devices such asdisplays, peripheral device 255 may include an input/output device, suchas a bar code reader or any other type of device that may plug into ashelf to facilitate data collection/retrieval from items with or withoutRFID tags 280. For example, a user may use such a bar code scanner tocollect and read the UPC number for an item and to associate an EPCnumber with UPC numbers already in a database. Accordingly, incircumstances where one or more items are received by environment 110-1without an RFID tag 280, the scanner may be used to facilitateassociating a non-tagged item with a UPC or EPC. Also, peripheral device255 may be a monitoring device that connects to an interface mounted ona shelf unit. The monitoring device may perform checking functions, suchas checking the status of any antennae in the shelf unit and itemsresting on the shelf.

In one aspect of the invention, one or more peripheral devices 255 maycommunicate with one or more secondary controllers 266. For example,peripheral device 255 may represent a plurality of proximity sensorsthat each detect the presence of a user (e.g., customer) within apredetermined vicinity of the device 255. Based on whether a user, orother entity, was within the vicinity (e.g., a few inches, a few feet,etc.), device 255 may generate a signal (e.g., analog or discretesignal, digital signal, etc.) that may be monitored by a processordevice and/or computer executed process with analog and/or digital I/Oprocessing capabilities. Alternatively, device 255 may be a video cameramounted within or proximate to one or more shelves for surveillancepurposes. The camera may receive a signal (e.g., interrupt) fromsecondary controller 266 when it determines that an item, or a number ofitems above a certain threshold number, was removed from a particularlocation. The camera may be activated by the signal to record videocontinuously or may take a still picture only when the signal isreceived.

One task of secondary controller 266 may be to switch antennae 270mounted within a single shelf unit (or similar support unit) storing oneor more items from inventory 170. Also, secondary controller 266 may beused to communicate information to and from a user (e.g., customer,retailer employee, etc.). For example, secondary controller 266 mayreceive from ISSA 200 (via database 215) item information about eachitem known to be on a shelf served by secondary controller 266. Thisitem information may include current price, size, weight, unit price,and/or sale status (e.g., discount on a current sale price). The iteminformation may be displayed on peripheral device 255, such as a shelfedge display. If there is more than one type of item on the shelf, theremay be multiple shelf edge displays mounted on or near the shelf.Alternately, information for each item type might cycle sequentially ona single display, pausing for several seconds before continuing to thenext item type. The shelf edge display may be provided with a userinterface button to temporarily halt the display cycle and to requestadditional information about the product being displayed when pressed bythe user. Also, if ISSA 200 senses an item being removed from the shelfbased on data provided by DCS 160, it may instruct secondary controller266 to display information associated with that item on the peripheraldevice 255.

Secondary controller 266 may also be configured to facilitate otherinteractive operations between ISSA 200 and a customer. In one aspect ofthe invention, a customer may be provided with an RFID-based customercard that includes an RFID tag containing information concerning oridentifying a customer. The customer identification information may berelated to information stored in database 215 or another memory devicethat maintains customer information, such as a current shopping listprovided by the customer (via the Internet and browser software, kioskdevice, etc.), and profile information associated with the customerand/or the customer's family members (e.g., clothing sizes, brandpreferences, etc.). When a customer carrying a customer RFID card entersand moves throughout environment 110-1, the presence of the customercard in the vicinity of a shelf equipped with the RFID antennaassociated with secondary controller 266 may cause a signal or data tobe passed to ISSA 200 through primary controller 260. In response to thesignal or data, ISSA 200 may direct secondary controller 266 to displayinformation about an item at the shelf that detected the customer card,such as through peripheral device 255. In this instance, ISSA 200 mayaccess database 215 to collect any customer information associated withthe identifier corresponding to the detected customer card. ISSA 200 maythen determine whether any items or types of items located near or atthe shelf that detected the card relate to the customer informationstored in database 215. For example, ISSA 200 may determine whether anitem is included in a shopping list created by the customer and/orrelates to a list of preferred products for the customer. Further, ISSA200 may provide additional information to secondary controller 266 fordisplay on peripheral device 255, such as the availability of thecustomer's size in the case of a clothing item, the availability of arebate for an item, and the availability of sales or rebates for otheritems.

The exemplary features associated with secondary controller 266 are notlimited to RFID-based customer cards. Methods and systems consistentwith certain aspects of the invention may also allow a user who is anemployee or similar individual affiliated with environment 110-1 to beassigned an RFID-based employee card. For example, a salesperson workingfor a retail store may be provided with an RFID-based employee card thatmay be detected by antenna 270 located in any shelf unit or similarstructure included in the retail store. The presence of the RFID-basedemployee card within the vicinity of a shelf associated secondarycontroller 266 may cause ISSA 200 to provide commands to DCS 160 andultimately secondary controller 266 that direct peripheral device 255 todisplay information associated with the shelf. For instance, theinformation displayed may include data that identifies any out-of-dateitems that must be removed from the shelf, items approaching anexpiration date that may be relocated forward on the shelf, moved toanother location (e.g., a promotional area), and/or offered at reducedprice, items that are short on stock and where to locate additionalunits of the items within the store (e.g., environment 110-1), and itemsthat are misplaced and where to relocate them within the store. Foritems low on stock but not available from a third party supplier, suchas a warehouse, IS SA 200 may instruct secondary controller 266 todisplay a message that conveys expected delivery dates of new stock.Further, the message may also report an availability of a missing itemat nearby stores or alternate locations remote from environment 110-1.

ISSA 200 and RRM 220 may also communicate with DCS 160 that is locatedat POS locations, such as checkout lanes. At these locations, ISSA 200may interact with the POS system to facilitate certain salestransactions. For example, ISSA 200 may automatically register an itemhaving a warranty with a manufacturer by using serial number informationobtained from the EPC number of the item and/or customer identificationinformation (e.g., name, address, etc.) collected from an RFID (orconventional) customer card. The customer may be given an option whetherto accept the registration at the checkout lane, or to defer it untillater.

Optimization of RFID Tag Reading Performed by DCS 160

In one aspect of the invention, reader 262 may send RF energy through anRF bus (e.g., cable) to antennae 270 through secondary controller 266. Asingle antenna 270, or a group of antennae 270 located adjacent to oneanother and working in concert, may be activated and operational at agiven time based on signals provided by secondary controller 266 and/orreader 262. The active period for a given antenna 270 may be based onthe amount of time it takes to collect information from RFID tags 280located in proximity to the antenna 270. Secondary controller 266, underdirections from the primary controller 260, may select and activate eachantenna 270 in turn. The order in which antenna 270 are selected may beoptimized so that the reader 262 may be shared among many antennae 270.The sharing of reader 262 may allow DCS 160 to collect inventory datamore or less regularly, as well as focusing immediate attention onantennae 270 where one or more items are being moved. In one aspect ofthe invention, ISSA 200 may determine which antenna 270 to activatebased on one more prioritization factors. These factors may include:

1) antennae 270 that are located in proximity to a RFID tag 280 that wasmost recently added or moved;

2) antennae 270 that are located in proximity of one or more antennae270 with recent activity;

3) antennae 270 associated with one or more items known historically tohave a high sales volume during a particular time period (e.g., time ofday or week);

4) antennae 270 that are associated with a pushbutton request from acustomer for information, such as an interactive display peripheraldevice 255 mounted on a shelf including the antennae 270;

5) antennae 270 that have an RFID card (e.g., customer or employee card)located within their read range;

6) antennae 270 that have not been activated for a predetermined periodof time;

7) antennae 270 that have one or more theft-prone items within theirread range, such as high end merchandise items (e.g., jewels, etc.);

8) antennae 270 that are expected to have a product of immediateinterest to a user (e.g., employee or customer), such as when a userrequests information reflecting whether a desired item is available “onshelf” or in a back inventory stock room;

9) antennae 270 that are associated with one or more items that havepassed through a POS terminal within a predetermined period of time(e.g., recent POS sales); and

10) antennae 270 that are associated with one or more items approachingtheir shelf life.

One skilled in the art will appreciate that the above list ofprioritizing factors is not intended to be limiting and ISSA 200 and/ora user may determine other prioritizing factors based on one or morevariables and weighting factors associated with the characteristics ofthe items in inventory 170.

Performance Monitoring Capabilities of DCS 160

In one aspect of the invention, the hardware/software components of DCS160, including primary controller 260, reader 262, and secondarycontrollers 266, may perform self-monitoring and self-diagnosingoperations to determine and report any operational problems to ISSA 200.For example, to perform some self-diagnosing operations, a shelf unitmay include, within the shelf's antennae 270 read range, at least oneRFID tag to provide a self-check function. Accordingly, even when theshelf is empty (i.e., no items rest upon the shelf) there is at leastone RFID tag that may be read by the antennae 270 included in the shelf.In one aspect of the invention, at least one such RFID tag may beembedded near the center of, or at another location easily read by, anantenna 270 included in the shelf and another RFID tag embedded near theantenna's 270 read-range limit. Secondary controller 266 may, eitherperiodically or on command from ISSA 200, send test readsignals/commands to the antenna of a target shelf 270 and monitor anyresponses collected from the embedded RFID tag(s) included in acorresponding shelf unit. In the event that secondary controller 266does not receive a proper response from one or more embedded RFID tags,controller 266 (or another device, such as primary controller 260) mayascertain that a malfunction may have occurred.

To locate the source of a malfunction, DCS 160 may perform variousself-test read operations through neighboring components to a targetshelf unit and/or target antenna 270. For example, if another antenna270 driven by the same secondary controller 266 can still be read, thenDCS 160 may associate the malfunction with the target antenna 270. Onthe other hand, if all antennae 270 served by a given secondarycontroller 266 are not responding to command signals from the controller(i.e., not reading any RFID tags 280), then DCS 160 may associate themalfunction with the secondary controller 266. Further, if all antennae270 served by a given primary controller 260 and reader 262 are notreading data from a secondary controller 266, then the problem is likelywithin the primary controller 260 or the reader 262. To determine whichof these components is the source of the malfunction, DCS 160 maydetermine whether primary controller 260 may still communicatediagnostic data with one or more secondary controllers 266. If so, DCS160 may associate the malfunction with reader 262. Additionally, ifRS-485 serial data communication techniques are used between primarycontroller 260, reader 262, and one or more secondary controllers 266,DCS 160 may provide a sequential order of secondary controllers 266 thatprimary controller 260 may communicate with during a tag readingoperation. Accordingly, if an RS-485 data cable is disconnectedsomewhere along its length, primary controller 260, having been providedbeforehand with the sequence information indicating the order of thesecondary controllers 266 along the RS-485 link, may determine at whatpoint the RS-485 link was disconnected. In one aspect, acknowledgmentcommand protocols may be performed by primary controller 260 todetermine which secondary controller 266 is not responding to a command.That is, communications along the RS-485 link may include commands thatare acknowledged by the receiving entity on the link, and lack ofacknowledgment is another means to deduce where any problems may lie.

Exemplary Software Objects for ISSA 200

In one aspect of the invention, ISSA 200 may perform certain functionsrelated to the present invention using object-oriented programmingconstructs and techniques. For example, ISSA 200 may employ web servicesto perform certain functions related to aspects of the presentinvention. Table II shows a list of exemplary software objects that maybe implemented by ISSA 200 that may be used by one or more processes(e.g., tasks 231-239) and interact with one or more of the exemplarytables included in database 215.

TABLE II Exemplary Software Objects Web IssaServ/Admin.asmx Handles alladministrative related Service functions Methods GetEPCReadersListXMLRetrieves selected Req. Broker's list of zones GetUserListXML Retrieveslist of users StartRequestBroker Tell Broker Mgr to START selected ReqBroker GetRequestBrokerDetailXML Retrieves selected Req Broker's infoSaveRequestBroker Saves Req Broker's data GetRequestBrokerListXMLRetrieves list of Req Brokers SaveEPCReader Saves the zone's dataStopRequestBroker Tell Broker Mgr to STOP selected Req BrokerStartAllRequestBrokers Tell Broker Mgr to START all Req BrokersGetEPCReaderDetailsXML Retrieves selected zone's info Save User Savesthe user's data DemoGetZonesInvListXML Retrieves list of items onselected list of readers StopAllRequestBrokers Tell Broker Mgr to STOPALL Req Brokers GetRequestBrokerStatus Retrieves the current status of aReq Broker GetUserDetailXML Retrieves selected user's info. WebIssaServ/Inventory.asmx Handles all inventory related Service functions.Method GetItemDetail returns item detail for a given SKU includingproduct information, EPCs and locations. Web IssaServ/OutOfStock.asmxInterface for client application for Service executing all businesslogic functions related to out of stock functionality. MethodsGetInventoryXML Returns XML Stream of physical inventory. Data areretrieved from tblInv. OutOfLimitSKUXML Returns XML Stream of all SKUsover or under a baseline inventory. MisplacedSKUXML Returns XML streamof all SKUs that are currently misplaced on shelves. SKUArrangementReturns XML stream of SKUs and their currently acceptable locations.SetShelfArrangement Sets the current shelf arrangement, and optionallysets the baseline inventory. Web IssaServ/lnventoryRequest.asmxInitiated from Inventory Read Service Request Interface. Executed whenEPC codes are sent from Response Broker. Method ReadEPC UpdatestblCurEPC, and tblRemEPC Web IssaServ/Shrinkage.asmx Handles all productshrinkage related Service processes. Methods MajorPullXML Returns XMLStream of SKUs or a SKU that has been pulled from location(s) in aspecified amount of time based on a specified quantity.InventoryCompareXML Compares tblInv and tblERPinv and returns XML Streamof SKUs and locations where inventory variance is greater or less than agiven value. Web IssaServ/Login.asmx Handles all user related functions.Service Method Login Validates a given user name and password. WebIssaServ/RapidRecall.asmx Used for RapidRecall related Serviceprocesses. Methods ExpiredProductsXML Returns XML Stream of all productsthat have been expired based on an expiration date in the tblSKU table.Web IssaServ/Alerts.asmx Used for all alert related functions ServiceMethods GetInventoryAlertJobs Retrieve current inventory alertconfiguration info GetCurrentAlertsXML Returns an XML Stream of all thecurrent alerts in the system. RemoveAlerts Remove specified alerts fromdatabase NewInventoryAlertJob Sets an alert job to monitor products in agiven location that go above or below a given percentage of theirbaseline inventory ConfirmAlerts Update selected list of alerts to showconfirmation NewInventoryRemovalJob Sets an alert job to monitorproducts have been removed in a given quantity in a given amount ofseconds. Web IssaServ/LookupLists.asmx Handles all drop-down listpopulation Service functions Method GetLists Returns items to populategive drop- down list

Jobs 240

Jobs 240 may be one or more processes that are executed internallyand/or externally from ISSA 200 and may be used to trigger alerts andretrieve information from remote locations, such as a manufacturer'swebsite, or from entities located within environment 110-1. Eachprocess, or job, included in Jobs 240 may be developed using knownprogramming languages, such as the JAVA programming language and JDBCprovided by Sun Microsystems, Inc., and known scheduling software, suchas Microsoft Scheduler.

In one aspect of the invention, Jobs 240 may include an inventory limitjob that runs periodically (e.g., every 60 seconds) and monitorsinventory levels based on configurations that may have been set by auser through a user interface provided in interface 210 and stored in aconfiguration table within database 215. This job may generate aninventory out of limits alert if any inventory items are found to be outof bounds relative to the baseline inventory (e.g., current stock aboveand/or below a predetermined value). The alert may be generated using analert method, such as the exemplary WebServiceISSAserv/Alerts.asmx/NewIn-ventoryAlertJob method described in Table II.In one aspect of the invention, the inventory limit job may direct amessage provisioning service to send an e-mail to one or more predefinedusers each time an inventory out of limits alert occurs.

Jobs 240 may also perform a wrong shelf job that may run continuouslyand monitors misplaced items that are on an incorrect shelf. If ISSA 200determines that an item is located on an incorrect shelf, Jobs 240 maygenerate an alert message corresponding to that type of alert (i.e.,misplaced item) and insert it into a table within database 215, such asan alert table (e.g., tblAlerts). In one aspect of the invention, thewrong shelf job may direct a message provisioning service to send ane-mail to one or more predefined users each time a misplaced item alertoccurs.

Jobs 240 may also perform a removal limit job that may run continuouslyand monitor items that have been removed from their designated locations(e.g., shelf) in a quantity and time period specified by a user via userinterface 210. The removal limit job may generate and store informationassociated with the removed items in a table in database 215, such aninventory removal table (e.g., tblInventoryRemove). Further, if this jobdetermines one or more items that have been removed based on thespecified quantity and time period values, this job may create a newalert message associated with this condition and insert into the alerttable (e.g., tblAlerts).

Jobs 240 may also perform an expired products job that may run every dayat a predetermined time (e.g., 12:01 a.m.), and determine whether anyitems have been located in inventory 170 have reached or exceeded theircorresponding expiration limit (e.g., expiration date). If the expiredproducts job finds an item that has been expired, or is approaching anexpiration date, it may create a corresponding alert message and insertit into the alert table (e.g., tblAlerts).

Further, Jobs 240 may perform a SKU update job that may run periodically(e.g., every 10 minutes) that identifies any new items (e.g., SKUs) thatmay have been added to environment 170. This job may request iteminformation associated with the identified new items from an ERP systemor a manufacturer's website using XML.

Also, Jobs 240 may perform a manufacturer update job that may runperiodically (e.g., every 10 minutes) that monitors a table in database215 that is updated when an item is included in inventory 170 that isprovided by a manufacturer that is not registered with ISSA 200 (i.e., anew manufacturer). This update job may retrieve information associatedwith the new manufacturer from the manufacturer's website or other typeof external data source.

EPC Writer

As the RFID tag industry grows, it is expected that items may be“source-tagged.” That is, the RFID tags 280 may be applied to items andthe EPCs written to the tags by a manufacturer. There may be instances,however, when items are included in inventory 170 that do not includesource tagged items. Accordingly, environment 110-1 may perform an EPCwriter process that is designed to write EPCs to RFID tags 280. Sincethe EPC process may be configured to access data on a particular tag oneat a time, the process may be performed by a system that is separatefrom ISSA 200. Alternatively, ISSA 200 may include a separate EPC writerprocess (in addition to, or in place of, EPC writer task 234) that isexecuted by IIMS 105.

The EPC writer process may be a Windows® executable process that may use.NET serial implementations to communicate to reader 262. The EPC writermay store, in a file location, the number for the last EPC written to anRFID tag for a given manufacturer and its SKU information (e.g., itemtype information). Further, the EPC writer process may store a range ofserial numbers, SKU information, and manufacturer ID's for an EPC andwrite this EPC information to the memory of one or more RFID Tags 280.Also, the EPC writer may write to RFID tags based on a standard, such asthe Philips SLRM900 specification, depending on the type of RFID tagsimplemented by environment 110-1. Alternatively, the EPC writer maywrite to tags using RS-232 or other serial interface communicationprotocols.

In one aspect of the invention, inventory 170 may include one or moreRFID enabled shelves that include communication capabilities withperipheral device 255, such as a bar code reader. Accordingly, eachshelf may, at least temporarily or periodically, exclusively communicatewith the EPC writer process. For instance, a group of items of a certaintype may be placed on a shelf by a user (e.g., stock person). One of theitems may be scanned with a bar code reader to determine itscorresponding UPC number. The EPC writer may then sequentially assignEPC numbers to each item in the group by incorporating the informationderived from the UPC number.

Differences between a common UPC and an EPC are shown in Table III. AUPC may consist of decimal (i.e., base ten) data including manufacturernumber, object number, and a check digit, totaling 12 digits. An EPCincludes binary data that may include a header, manufacturer number,object number, and electronic serial number. In both the UPC and EPC,the manufacturer number may be assigned by a governing body, such asprice code standards governing body. An object class (including theobject number) may be assigned by a manufacturer. In the case of an EPC,the serial number may also be assigned by the manufacturer.

TABLE III Differences Between UPCs and EPCs UPC code 12 Bits fieldsTotal field size: 6 digits 5 digits 1 digit resolution: 1 million 100thousand 10 description: manufacturer object class or check digit SKUEPC code 96 Bits fields Total field size: 8 bits 28 bits 24 bits 36 bitsresolution: 256 268 million 16 million 68 billion description: headermanufacturer object class EPC serial or SKU number

In situations where a manufacturer or manufacturers have not beenassigned EPC manufacturer codes, the EPC writer may use arbitrary numberassignments until the EPC manufacturer codes are assigned.Alternatively, the existing UPC manufacturer codes, which fit directlyinto the larger EPC manufacturer field, may be used. Also, the existingUPC object class would fit into the larger EPC object field.

In such situations where a governing body has not assignedmanufacturer's codes, the EPC writer may be used in an arbitrarypseudo-EPC field arrangement for use in initial inventory operations,such as trial inventory management processes that incorporate thecurrent UPC field values or arbitrary values as the manufacturer'scodes. However, if a standard EPC field arrangement has beenimplemented, the EPC writer may be used by environment 110-1 to ensureitems are properly tagged. Also, if a standard EPC field arrangement ispromulgated, the EPC writer may be used by retailers, distributioncenters or manufacturers, possibly for limited product lines. Oneskilled in the art will appreciate that in the event RFID taggingbecomes more widespread and “source tagging” by the manufacturer becomescommon, use of the EPC writer may diminish at retail locations butincrease at manufacturing sources, which may implement methods, systems,and articles of manufacture consistent with certain aspects of theinvention.

If the pseudo-EPC field arrangement is implemented described above,environment 110-1 may assign EPC codes by defining a determined numberof fields (e.g., three) for the pseudo-EPC number. For example, thepseudo-EPC number may be arranged with an 8-bit header (1111,1111) thatcorresponds to the type header in the EPC, a 52-bit UPC field that isdivided into 13 subfields of 4 bits each, and a 36-bit serial numberfield, such as a sequential number, 0 to 68,719,476,735). The size ofthe data segments in the EPC may vary without departing from the scopeof the present invention.

The UPC number is made up of up to 13 digits, using the binaryrepresentation of each digit, one nibble per UPC digit. That is, 0 is0000, 1 is 0001, 2 is 0010, . . . and 9 is 1001. Individual packages ofa given item may be assigned unique serial numbers until more than 68.7billion packages are encountered. Note that there may be a difference inhow the UPC number and the serial number are treated by the EPC writerand environment 110-1 when converting to a binary representation. In thecase of the UPC number, each UPC digit (up to 13 digits) is assigned anibble in the EPC. A binary conversion may be performed by EPC writerdigit by digit, keeping particular decimal digits in correspondence withparticular EPC nibbles. In the case of the EPC serial number, however, astraight conversion may be performed from the decimal serial number tothe binary serial number, which is recorded in the 36-bit EPC field.

For example, consider an exemplary 96-bit pseudo-EPC code that has beenfilled with an exemplary barcode for a type of item (e.g., a 10-fl ozbottle of a multi-symptom cold/flu relief medicine). The barcode may be23900,00296 (or 000,23900,00296 in 13-digit form). A serial number of34782 may have been assigned to make the package for this item typeunique. In binary representation, 34782 is 0100,0011,1110,1111. Table IVshows the corresponding EPC and UPC data associated with this exemplaryitem type.

TABLE IV Exemplary UPC and EPC codes for Exemplary Item Type pseudo- EPCEPC nibble bits UPC digit Description 1 1111 8-bit header, first half 21111 8-bit header, second half 3 0000 0 13^(th) nibble - 13^(th) UPCdigit 4 0000 0 12^(th) nibble - 12^(th) UPC digit 5 0000 0 11^(th)nibble - 11^(th) UPC digit 6 0010 2 10^(th) nibble - 10^(th) UPC digit 70011 3 9^(th) nibble - 9^(th) UPC digit 8 1001 9 8^(th) nibble - 8^(th)UPC digit 9 0000 0 7^(th) nibble - 7^(th) UPC digit 10 0000 0 6^(th)nibble - 6^(th) UPC digit 11 0000 0 5^(th) nibble - 5^(th) UPC digit 120000 0 4^(th) nibble - 4^(th) UPC digit 13 0010 2 3^(rd) nibble - 3^(rd)UPC digit 14 1001 9 2^(nd) nibble - 2^(nd) UPC digit 15 0110 6 1^(st)nibble - 1^(st) UPC digit 16 0000 9^(th) nibble of serial number 17 00008^(th) nibble of serial number 18 0000 7^(th) nibble of serial number 190000 6^(th) nibble of serial number 20 0000 5^(th) nibble of serialnumber 21 0100 4^(th) nibble of serial number 22 0011 3^(rd) nibble ofserial number 23 1110 2^(nd) nibble of serial number 24 1111 1^(st)nibble of serial number

To facilitate assignment of the appropriate pseudo-EPC number to taggeditems, the EPC writer may record the 12- or 13-digit UPC numberelectronically at the time when the serial number is assigned and theRFID tag 280 is applied to the package of the item. FIG. 3 shows aflowchart of an exemplary EPC writer process that may perform the abovedescribed RFID tagging process. As shown, the EPC writer process mayobtain a list of SKUs (item types) to be tagged (Step 310). This listmay include the UPC number for each item type and a character stringidentifying the item, and may be stored in a SKU table that may befilled by any known type of barcode scanning software and/or hardware.In one aspect of the invention, the SKU table may include three fields,a UPC number field, a manufacturer name field, and a character string toinclude general description information, such as size, flavor, etc.

At the time when an RFID tag 280 is to be assigned to an item, the EPCwriter process may call EPC writer task 234 that operates as anassignment module in ISSA 200. The call may direct task 234 to accessthe SKU table (which may be stored in database 215) and locate acorresponding UPC for each SKU included in the list obtained in Step 310(Step 320). For example, EPC writer task 234 may generate a query tosearch the SKU table for manufacturer and/or item name.

Once a UPC is located for a corresponding SKU, the EPC writer task 234may provide this information back to the EPC writer process. Oncereceived, the EPC writer process may use the UPC to write the entirepseudo-EPC number to the RFID tag on each package of the item type, byfor example, using a write to tag command that is executed by the RFIDreader (Step 330). This step assigns the unique serial numbers to eachtag. Further, the EPC writer process may log the pseudo-EPC into a tableduring this procedure, such as a table stored in database 215 (Step340).

In one aspect of the invention, an RFID tag 280 may contain both theserial number that is assigned as the unique RFID tag number and thepseudo-EPC number that is encoded as extra data. Although the pseudo-EPCnumber includes information that identifies an item, the serial numbermay be read faster by reader software/hardware than the pseudo-EPCnumber. For example, an anticollision select command provided by certainbar code readers, such as the Philips reader, may automatically returnthe RFID tag serial numbers. In instances where the type of itemslocated on a particular shelf change very little from one RFID tag readoperation to another, the read cycle for obtaining the pseudo-EPC numbermay be improved by storing the EPC information and corresponding serialnumber information in a local cache memory device (not shown).Accordingly, the reader may issue an anticollision select command whenattempting to read an RFID tag 280 and initially receive the RFID tagserial number. The reader may then determine whether the tag serialnumber is located in the local cache. If it is, then the reader mayretrieve the corresponding EPC number from the cache. If the tag is notstored in the cache, then the reader may read the tag data blocks toobtain the pseudo EPC number. The RFID tag serial number and EPC numbermay then be added to the cache for a subsequent read cycle. Environment110-1 may perform a purge process that may purge the tag informationcontained within the cache on a periodic basis. This may provide similardata access performance as a relational type database containing the tagserial number and EPC, with less data management delays.

User Interface Pages

User interface 210 may provide content-based interfaces to a user thatenables the user to request and input information associated with theintelligent inventory management functions consistent with certainaspects related to the invention. FIG. 4 shows an exemplary interfacemap 400 that provides a framework that ISSA 200 may implement to respondto inquiries from a user via user interface 210. Each box in map 400 mayrepresent a page process performed by user interface 210 that allows auser to request and/or receive information. Each page may check asecurity key carried in a session for a current user to determinewhether the user is allowed access to the corresponding page. Further,each page may post an XML document to ISSA 200 and retrieve XMLinformation. Also, content may be displayed on a display device (e.g.,display 204) by applying style sheets to XML from COM+componentsdescribed for each page. Further, the page process in map 400 mayinteract with corresponding one or more processes included in ISSA 200(e.g., tasks 231-239) and jobs 240.

As shown, FIG. 4 includes a home page 402 allows that allows a user tonavigate to other pages displayed by the page process in map 400. Amongthese pages is a user login page 410 that allows a user to enter ausername and password. Page 410 may then initiate a login process, suchas a WebService ISSAserv/Login.asmx/Login method. If the user is a validuser, the login page process may direct user interface 210 to executehome page process 402. Otherwise, login page 410 may again request auser name and password.

File page 408 directs the user to login as new user page 410 whichallows the user to create and edit user information and to set up alertsubscriptions (e.g., define certain types of alerts that are desired tobe reported). Logoff page 412 page allows the user to log off from thecurrent login session.

Stock level control page 414 allows the user to access various inventorylevel information by directing the user, for example, to View LiveInventory page 416. This page allows users to view the current physicalinventory at a particular location, such as a shelf. The user maygenerate a query using various fields defined by user interface 210.Table V shows a list of exemplary search fields a user may use to filtera search. Once the query is entered by the user, interface 210 maydisplay a search results for Live Inventory page 416 that initiates aprocess (e.g., WebService IS SAserv/OutofStock.asmx/GetInventoryXML)that allows the user to search and view information associated with anitem. This process may allow the user to receive information fromanother page, such as an Item Detail page (not shown). In one aspect ofthe invention, a user who is a vendor with merchandise included inenvironment 110-1 may be given limited local or remote access to theView Live Inventory page 416 to ascertain whether their item is beingdisplayed according to preset agreements. For example, the vendor maydetermine whether their items are presented on a certain number of shelffacings, located in a particular location within a store, whether theiritems are positioned in a preferred location within a set of shelves,such as at eye level as opposed to higher or lower levels, etc.

TABLE V Search Fields Manufacturer SKU Number Category Current InventoryCount (From, To) (on-shelf) Current Inventory Count (From, To) (backroom or warehouse) Expected Inventory Count (From, To) on order ExpectedDelivery Date Serial Number (From, To) Price (From, To) Cost (From, To)Aisle Number Gondola Number Shelf Number EPC Reader (For debuggingpurposes) Revenue (price × velocity) Time an Alert is active Timeelapsed since last sale Time elapsed since item count dropped below acritical threshold Time since an out-of-date, or until an out-of-dateOther arbitrarily assigned or calculated priority codes

The Item Detail page (not shown) may perform a process that allows auser to view information associated with an item, determine where theitem is currently located in environment 110-1, and a time when the itemwas placed at that location. Items may be considered to be located at aparticular physical location (e.g., a particular shelf) if the item isread by a single reader antenna 270, or on a “virtual shelf” if the itemis read by multiple reader antennae 270 that are associated with eachother in a relationship table, such as a tblRelatedEPC table included indatabase 215.

The View SKU Out of Limits page 418 allows a user to view informationassociated with one or more item types that are currently over or underan allowable percentage of baseline inventory. The user may be able tofilter a search by using the fields shown in Table V. Once the filterinformation is entered by the user, user interface 210 may display asearch results for SKUs out of limits page (not shown). This page mayinitiate a process (e.g., WebServiceISSAserv/OutofStockasmx/OutofimitsSK-UXML) that shows a user a currentinventory for a given item or item type at a current location. Further,the process may also provide the baseline inventory value for that itemat the specified location, and the difference the current inventorydeviates above or below the desired baseline inventory. Furthermore, theprocess may display the allowable percentage over and under for a givenSKU and location. This out of limits information may be used by ISSA 200to suggest which out-of-limits items to restock first based on expectedsales information provided by a user and/or a software process thatproduces this information. ISSA 200 may also access current andhistorical sales data maintained in a memory device (e.g., database 215)to generate a report predicting expected times at which each item maybecome out of stock. Also, ISSA 200 may use various factors, such aspricing, seasonality, etc., to adjust the predicted information providedin the report.

The View Lost Sales page 420 may allow a user to view informationassociated with item types that have lost sales due to being out ofstock. The user may be able to filter a search query for these SKUsusing the fields listed in Table V. Once the filter information isentered, by a user, user interface 210 may display a search results forlost sales page (not shown). This page may initiate a sales estimationprocess that shows the user an estimate of the sales (e.g., in dollars)lost due to the items of the item type being out-of-stock. The estimateprovided by the sales estimation process may be based on a comparison ofinventory levels, sales volume (current and historical), and traditionalcorrelation of sales events for similar types of items. For example,ISSA 200 may access inventory data, sales information, etc. fromdatabase 215 to perform the comparisons used by the sales estimationprocess. The estimate of out-of-stock lost sales may be also be basedentirely on factors provided by a user (e.g., administrator, retailermanager, etc.) to describe substitution rates associated with thesimilar item types. Alternatively, ISSA 200 may be configured to trainitself by recognizing trends associated with previous sales of theseitem types and mining it from a database including similar information.

The Misplaced SKUs page 422 may allow a user to view informationassociated with items that are currently positioned in an incorrectlocation within environment 110-1. The user may be able to filter asearch for misplaced items using the fields in Table V. Once the filterinformation is provided by the user, interface 210 may display a searchresults for misplaced SKUs page. This page may initiate a process (e.g.,WebService ISSAserv/OutofStock.asmx/MisplacedSKUXML) that displays anycurrent items that are misplaced and their current location inenvironment 110-1. The user may elect an item using, for example, theitem's SKU information, from a list displayed on a display device toview the location of the selected SKU.

Stock level maintenance page 424 directs the user to pages (e.g., 426and 428) that allow the user to configure and/or view current inventoryarrangements in environment 110-1. The View Shelf Arrangement page 428may allow a user to view information regarding any item in inventory 170and their corresponding currently assigned locations in environment110-1. The user may be able to filter a search using the fields in TableV. Once the filter information is entered by the user, user interface210 may display a current shelf arrangements page (not shown). Thearrangements page may perform a process (e.g., WebServiceISSAserv/OutofStock.asmx/SKUArrangement) that shows items and theirallowable locations (e.g., locations in environment 110-1 that areassigned to the respective items). ISSA 200 may access item price and/orsales velocity data from a database (e.g., database 215) to provideprioritized locations within environment 110-1 that items of certaintypes may be placed to promote increased sales and/or movement of theseitems.

The Set Shelf Arrangement page 426 may allow a user to set a locationfor certain types of items, a category of items, items provided bycertain manufacturers, a specific SKU number, and a particular range oflocations within environment 110-1 (e.g., an aisle, a gondola, and/or ashelf). Page 426 may also allow a user to set the baseline inventory foreach item type. Further, environment 110-1 may implement planogramsoftware, which is a plan (e.g., a diagram, picture, etc.) thatdescribes how and where products should be placed on retail shelves anddisplays. A planogram analyzes space utilization, provides financialdata, along with other reports that permit retailers and manufacturersto effectively plan, set-up and manage their businesses to maximizeprofitability of retail space. Accordingly, the set shelf arrangementpage may be downloaded from a planogram program executed by environment110-1. Likewise, ISSA 200 may allow the planogram program to updatecurrent inventory information using the interface page informationprovided by the inventory data provided by the pages in map 400. Also,the planogram routine may be incorporated into ISSA 200 for execution byIIMS 105.

The Shrinkage Control page 430 directs the user to shrinkage informationprovided by pages 432 and 434. The View Over Removed Inventory page 432may allow a user to filter items by individual items, by a category ofitems, items provided by a particular manufacturer, by SKU numbers thatare in locations within environment 110-1, by particular locationswithin environment 110-1 (e.g., an aisle, a gondola, and a shelfnumber). Page 432 may allow the user to view the requested items thathave been removed from their designated locations in a determinedquantity within a certain period of time that may be specified by theuser. It also displays an Over Removed Inventory Results page (notshown). This page may initiate a process (e.g., WebServiceISSAserv/Shrinkage.asmx/MajorPullXML) that may show the location, iteminformation, a time when a first item of the number of items was removedfrom the designated location, a time when a last item of the number ofitems was removed, and how many items were removed in that time period.

The View Actual vs. ERP Inventory page 434 may allow a user to receiveinformation associated with items located in environment 110-1 that havea user defined percent variance over and/or under a defined inventorylevel. The user may filter a search of these items individually, by acategory of items, by items provided by a particular manufacturer, and aSKU number that is in a location within environment 110-1, such as anaisle, a gondola, and a shelf number. Inventory page 434 may show anActual vs. ERP Results page (not shown). This results page may initiatea process (e.g., WebServiceISSAserv/Shrinkage.asmx/Inv-entoryCompareXML) that may show the physicalinventory present in inventory 170, such as those items located onshelves, a business defined inventory (e.g., an ERP inventory), and thepercentage variance between the two.

The Rapid Recall page 436 may direct the user to one or more pages(e.g., 438-442) that provide information associated with items that mayhave expired or are approaching an expiration date. The View ExpiredSKUs page 438 may allow a user to filter items individually, by acategory of items, by items provided by a particular manufacturer, by aSKU number that may be in a location within environment 110-1, such asan aisle, a gondola, and a particular shelf: Page 438 may display anExpired SKUs Results page (not shown) that may initiate a process (e.g.,WebService ISSAserv/RapidRecall.asmx/ExpiredProductsXML) that may showitem descriptions, locations of items have that have expired, and a timeperiod that these expired items have been located in their currentlocation since their corresponding expiration dates.

The View Upcoming Expired SKUs page 440 may allow the user to filteritems individually, by a category of items, by items provided by aparticular manufacturer, by a SKU number that may be in a locationwithin environment 110-1, such as an aisle, a gondola, and a particularshelf. Page 440 may allow a user to receive information regarding itemsthat are going to expire within a certain period of time (e.g., minutes,hours, days, weeks, etc.). Further, page 440 may display an UpcomingExpired SKU Results page (not shown). This results page may perform aprocess (e.g., WebService ISSAserv/RapidRecall.asmx/ExpiredProductsXML)that may show the locations and associated items that are due to expirewithin the certain period of time for the given products based on theuser defined filter.

The Find Serial Number page 442 may allow a user to view items within acertain serial number range. The user may be able to filter a searchusing the fields in Table V. Once the filter information is provided bythe user, user interface 210 may display the Search Results for LiveInventory page, described above. This page may perform a process (e.g.,WebService ISSAserv/OutofStock.asmx/GetinventoryXML) that providesinformation regarding items with corresponding serial numbers within therange specified by the user.

The Alerts page 444 may direct the user to one or more pages (e.g.,pages 446-452) that allow the user to receive and/or set informationassociated with one or more types of inventory alerts. The Set SKUInventory Alert page 446 may allow the user to set an alertconfiguration for items that drop below or go above a defined percentageof a base line inventory. Alert page 446 may allow the user to set thealert configuration for all items in inventory 170, for items of aparticular type, for a category of items, for items provided by amanufacturer, and for particular SKU numbers that are positioned inparticular locations within environment 110-1, such as an aisle, agondola, and a particular shelf. Alert page 446 may initiate a processthat performs the desired monitoring set by the user (e.g., WebServiceISSAserv/Alerts.asmx/Newinve-ntoryAlertJob).

The View SKU Inventory Alerts page 448 may show an alert configurationfor the items and their corresponding locations in environment 110-1that are currently being monitored by an inventory alerts process. Page448 allows the user to remove inventory alert configurations that are nolonger needed.

The Set Inventory Removal Alerts page 450 may allow a user to set analert configuration for situations where a determined number of itemsare removed within a determined time period. Page 450 may allow the userto set these types of alert configuration for individual items, allitems, for a category of items, for items provided by a particularmanufacturer, and for items with a SKU number that may be in a locationwithin environment 110-1, such as an aisle, a gondola, and a particularshelf. Page 450 may initiate a process that performs the configurationsdescribed above, (e.g., WebServiceISSAserv/Alerts.asmx/NewInventoryRemov-alJob).

The View Inventory Removal Limits page 452 may show alert configurationsfor the items and their corresponding locations in environment 110-1that are currently being monitored by an inventory removal limitsprocess. This page may allow the user to remove configurations ofinventory removal limits that are no longer needed.

One skilled in the art will appreciate that the pages shown in FIG. 4and described above are exemplary and not intended to be limiting.Environment 110-1 may implement fewer or additional types of pages thatperform various functions that may or may not be associated with theinventory management aspects related to the invention. For example, userinterface 210 may include one or more page processes that provide theuser with general and/or specific assistance in navigating the pagesprovided by interface 210. Further, interface 210 may include one ormore pages that allow the user to set, view and/or modify variouscharacteristics associated with individual items or item types, such asprice, size characteristics, defect status, etc. Additionally, interface210 may include one or more page processes that allow a user to viewcustomer related information, such as customer profile information thatis used with a customer ID card.

Inventory Management Processes

As described, environment 110-1 includes an ISSA 200 that performs oneor more intelligent inventory management processes consistent withcertain aspects related to the present invention. Each of theseinventory management processes may be performed in response to a useraccessing ISSA 200 via user interface 210 and/or in response to arequest initiated from a non-user source, such as another task, process,and or computing entity. FIGS. 5-7 show flowcharts of various exemplaryinventory processes that may be performed by environment 110-1consistent with certain aspects related to the present invention.

FIG. 5 shows an exemplary inventory analysis process that may beperformed consistent with certain aspects related to the presentinvention. Initially, environment 110-1 may perform processes thatdetermine the inventory of items in inventory 170 (Step 510). This stepmay be initiated by a user, via interface 210 and the pages describedwith respect to FIG. 4. Alternatively, a process performed by ISSA 200or a job performed by Jobs 240, may periodically initiate the collectionof inventory information. Also, Step 510 may be initiated by an eventdetected by one or more sensors (e.g., software and/or hardware basedsensors) located in environment 110-1. Once environment 110-1 collectsthe inventory information (e.g., the number of items of each typeincluded in inventory 170), it may be stored in database 215 forsubsequent access. Further, the inventory information may be used byISSA 200 to produce a report and/or content that is provided to a userthrough various types of medium, such as a printer, web page, telephonicmessage, etc.

Environment 110-1 may also determine whether a number of items of anytype in inventory 170 is below a predetermined level (Step 520).Environment 110-1 may execute the appropriate processes described above(e.g., via view SKUs out of limits page 418, out of stock control task231, etc.) to determine and identify an inventory of items of any typehas fallen below the predetermined level for that type. If so, (Step520; YES), an appropriate item below stock level process may beperformed (Step 530). This process may include providing an alertmessage to a user via an output device (e.g., display 204, a pager, cellphone, etc.) indicating which item type needs restocking and thelocation of the depleted items in environment 110-1. Once the user isnotified, he/she may determine whether there are any additional items ofthe depleted type in an alternate location, such as in a back room.Alternatively, ISSA 200 may indicate to the user whether there isadditional inventory of the item type in environment 110-1. Accordingly,the user or ISSA 200 may re-order stock if additional items are needed.Further, step 530 may include providing a customer message on a shelfdisplay located on or near the location where the depleted inventory ofitems was determined. In one aspect, a store manager or ISSA 200, forexample, may formulate customized messages based on the depletedinventory notification that provide various information to a customerthat happens to view the shelf display. The customized messages mayinclude offered discounts, rain checks, location information ofalternate environments that have the missing items in stock, etc.

Environment 110-1 may also determine whether there are any misplaceditems in inventory 170 (Step 540). Environment 110-1 may execute theappropriate processes described above (e.g., via misplaced SKUs page422, and out of stock control task 231) to determine and identify anymisplaced items in inventory 170. If there is a misplaced item or items(Step 540; YES), environment 110-1 may perform an appropriate misplaceditem process (Step 550). This process may include providing a user withinformation including a location of the missing item and/or its intendedlocation (i.e., where inside a store the item belongs). A user (e.g.,stock person) may be directed to the current location of the misplaceditem(s) so that they may return these item(s) to their designatedlocation within environment 110-1.

Also, environment 110-1 may determine information associated with anylost sales based on missing or misplaced items in inventory 170 (Step550). This step may include generating and providing a lost sales report(via, for example, out of stock task 231) reflecting revenue that islost based on the item type being out of stock or having a depletednumber of items. Further, an influenced sales report may be generated byISSA 200 and provided to a user that includes information thatcorrelates various factors (e.g., price of the items, seasonalityfactors, sales of other items, etc.) to previous and current sales ofitems of the type that has a depleted inventory. A user may use theinfluenced sales report to determine whether any adjustments are needed,such as moving the items of the depleted item type to other locations,price, stock order schedules, etc.

FIG. 6 shows a flowchart of a shrinkage process that may be performed byenvironment 110-1 consistent with certain aspects related to the presentinvention. Environment 110-1 may initially determine whether a shrinkageevent occurred (Step 610). As discussed above, a shrinkage event may beassociated with a condition where a predetermined number of items havebeen removed from their current location within a predetermined periodof time. Accordingly, if a large number of items of the same type aretaken from a shelf in a manner of minutes, a shrinkage event may haveoccurred depending on the values set by a user for the predeterminednumber of items and time period for such shrinkage events and the typeof items being affected. If such an event has occurred (Step 610; YES),then environment 110-1 may perform a shrinkage event process (Step 620).If a shrinkage event has not occurred, the process ends.

Step 620 may include various processes performed by a user and/or ISSA200 as previous explained with respect to shrinkage pages 430-434 and/orshrinkage process 232. For example, environment 110-1 may provide analert message to a user including information specific to the determinedshrinkage event (e.g., location of the event, the type of items thathave been removed, and in what time frame). Thus, a store employee mayreceive the alert message and s directed to the location to performvarious tasks, such as security services, and/or customer servicefunctions. Also, step 620 may activate one or more security devices,systems, etc., to monitor the location surrounding the shrinkage event.For example, environment 110-1 may activate a camera to record anyphysical actions performed by the users at or near the location where inthe shrinkage event took place.

FIG. 7 shows a flowchart of an exemplary recall process consistent withcertain aspects related to the present invention. Environment 110-1 mayexecute the appropriate processes described above (e.g., via rapidrecall pages 436-442 and out of rapid recall task 233) to handle anyrecall events associated with items included in inventory 170. In oneaspect, environment 110-1 may determine whether a shelf life orexpiration event is detected (Step 710). This step may be associatedwith determining whether inventory 170 includes any items that have acorresponding shelf life and/or expiration date that has been exceededand/or is close to being exceed (e.g., within a day, a few days, a week,etc.). If such an event is detected (Step 710; YES), an appropriateshelf life/expiration process is performed (Step 720). This step mayinclude notifying a user (e.g., store employee, clerk at a POS location,manager at a home office, etc.) and/or another software process in ISSA200 that inventory 170 includes one or more items that have eitherexceeded or is about to exceed, their shelf life and/or expirationdates. The notification may include information identifying each item(e.g., SKU information), their corresponding locations in environment110-1, whether there is replaceable stock in environment 110-1 withvalid shelf lives and/or expiration dates, and/or instructions on how todeal with the event (e.g., remove from shelves, move item(s) to front ofa shelf or store location, etc.). The user and/or ISSA 200 receiving theevent may use the received information to execute one or more of thesuggested instructions, as well as perform other processes to remedy theshelf life/expiration event. These other duties may include changing theprice of one or more of the items that are associated with this event.Further, environment 110-1 may display a message at a POS terminaland/or a display device mounted at or near the items related to thisevent to warn customers and/or employees that certain items may haveexceeded their shelf lives or expiration dates.

Further, environment 110-1 may determine whether a temperature event hasoccurred (Step 730). A temperature event may be associated with acondition where the temperature of an area surrounding, at, or near aparticular group of items has changed in such a manner as to possiblydamage the items in the group. For example, if a refrigeration unit inenvironment 110-1 has malfunctioned and the temperature drops below acertain value, any produces stored in the unit may be damaged and deemedunhealthy for sale. If a temperature event has occurred (Step 730; YES),a temperature process is performed (Step 740). In one aspect of theinvention, the temperature process may include notifying a user of thetemperature event, the location in environment 110-1 associated with theevent, instructions on how to deal with the event, item informationassociated with any items included in the area affected by the event(e.g., SKU information), a time period that the event has occurredand/or is occurring, etc. The user may take appropriate actions toensure any items affected by the event are safe for purchase (e.g., inthe event an event just occurred). The user may relocate these items toa properly operating temperature controlled location in environment110-1 for further purchase. Further, the user, and or ISSA 200 mayprovide a repair message to a designated user or use location to requestrepair of the unit that may have malfunctioned causing the temperatureevent.

Environment 110-1 may also determine whether any items in inventory 170are associated with one or more item types that have had a defectreported by a manufacturer (Step 750). This step may include comparingthe item information collected from the determined live inventory step510 shown in FIG. 5 with a received list of defective items provided bythe manufacturer. If there are any items of a certain type that matchesthose found in the defect information provided by the manufacturer,environment 110-1, a defect process may be performed (Step 760). Thisprocess may include notifying a user (e.g., customer and/or employee) ofthe defective items in inventory 170, their location, and informationregarding the defect (e.g., the type of defect, whether the item isstill safe/operational with the defect, whether the item a POS must berecalled and not sold, etc.). In one aspect, the notified user may be aclerk at location that may facilitate handling the sale of the defectiveitem about to be purchased by a customer. For example, depending on theseverity of the defect described in the defect information provided inthe notification, the clerk may prevent the customer from purchasing theitem. Alternatively, if the item may still be brought up tospecification by additional parts or software that will be provided bythe manufacturer, the clerk may forward this information to the customerand provide information on how to obtain the corrective parts/softwarefor the purchased item. Further, ISSA 200 may automatically provide adiscount for the sale price of the defective item. The reduced saleprice may be displayed at the POS location or on a display mounted neara location associated with the one or more defective items.Additionally, environment 110-1 may provide services and/or devices thatallow the customer who purchased a defective item to correct the item.For example, a workstation may be provided from which the user maydownload the necessary software code to correct a defect in a programstored on computer readable medium. Further, environment 110-1 mayprovide these services to customers in a manner where the customer mayleave the purchased item with an employee who performs the necessaryprocedures to correct the item, such as order a missing part from amanufacturer, downloading a corrective software patch, installing amissing part on a defective item, etc.

Additionally, environment 110-1 may also determine whether there are anyitems in inventory 170 that have undergone a design change by theircorresponding manufacturer (Step 770). Similarly with Step 750,environment 110-1 may determine whether a design change has occurred bycomparing design change information received from a manufacturer with acurrent list of inventory information, perhaps provided via the processperformed at Step 510 of FIG. 5. If an item type has undergone a designchange, (Step 770; YES), a design change process may be performed (Step780). The design change process may include notifying a user (e.g.,employee) of the item type that has been changed, the location(s) of anyitems of the changed type, instructions on how to deal with this designchange event, etc. In one aspect of the invention, the design changeprocess may include moving older items to an alternate location inenvironment 110-1, such as from a back location on a shelf to a frontlocation to promote their sales before the design changed items.Further, the design change process may include removing the older itemsfrom inventory 170, which may be at the directions of the manufacturer.

Although the steps shown in the flowcharts of FIGS. 5-7 are illustratedin particular sequences, methods, systems, and articles of manufactureconsistent with aspects of the present invention may perform each of thesteps in different sequences, such as a single step, in variouscombination of steps, and with additional or fewer steps, withoutdeparting from the scope of the invention.

CONCLUSION

As described, systems, methods, and articles of manufacture consistentwith certain aspects related to the present invention enable anenvironment to perform item inventory management processes on a realtime, or near real time basis, and at a granularity level that providesmany options for the environment to achieve its business goals (e.g.,increase sales).

The foregoing description of implementations of the invention has beenpresented for purposes of illustration and description. It is notexhaustive and does not limit the invention to the precise formdisclosed. Modifications and variations are possible in light of theabove teachings or may be acquired from practicing of the invention.Additional modifications and variations of the invention may be, forexample, the described implementation includes software but the presentinvention may be implemented as a combination of hardware and softwareor in hardware alone. The invention may be implemented with bothobject-oriented and non-object-oriented programming systems.

For instance, one skilled in the art will appreciate the ability toimplement the present invention using many different types ofenvironments 110-1. For example, in addition to retail environments,aspects of the present invention may be applied to any environment thatincludes objects (e.g., physical tangible objects, such as inventory)that may be RFID tagged and includes antennae for retrieving informationfrom these tags. For instance, the present invention may be applied inan environment where a business wishes to track individuals throughoutits business environment. In such a scenario, the business environment(e.g., building) may have antennae mounted in various strategiclocations (e.g., doorways, elevators, etc.). Each employee of thebusiness may be issued an RFID card, much like those describedpreviously (e.g., customer RFID card). Thus, ISSA 200 may be able tomonitor the movements of a user within the business environment based oninformation received/collected from the antennae as the employee movespast them.

Additionally, interface 210 may include other types of interfaces thatinteract with various processes performed by ISSA 200. For example,various user interfaces may operate that interact with the EPC writerprocess to allow a user to not only read and write EPC data from/to theRFID tags 280 in inventory 170, but also to monitor the status of suchoperations. For example, interface 210 may include results interfacethat presents to a user a results window that includes a list of allitems that were entered via an EPC writer window. The results window mayinclude information that indicates whether an EPC write operation wassuccessfully performed. Various interactive display messages may beprovided to the user based on the results of any EPC writes. Forexample, the result window may present one or more error messagesindicating a reason why an EPC write was not successful and instructionson how to possibly correct the problem. Also, interface 210 may includea bad tag finder interface that enables a user to request information onany malfunctioning RFID tags 280. The bad tag interface may present tothe user information identifying the ID of any bad tags, their location,and the associated item associated with the tag.

Although aspects of the present invention are described as being storedin memory, one skilled in the art will appreciate that these aspects canalso be stored on other types of computer-readable media, such assecondary storage devices, like hard disks, floppy disks, or CD-ROM; acarrier wave from the Internet or other propagation medium; or otherforms of RAM or ROM. The scope of the invention is defined by the claimsand their equivalents.

1. A method of providing inventory information in an environmentincluding an inventory of items each positioned within a respectivelocation within an environment and is associated with a correspondingwireless identification device, and an inventory monitoring process thatperiodically performs an inventory count of the items in the environmentby retrieving item information from each wireless identification deviceassociated with each item and storing the retrieved information in adatabase, the method comprising: receiving from a user a request for anavailability of an item within the environment; searching the iteminformation within the database to determine whether the requested itemis available in the environment; and providing an indication reflectinga result of the search.
 2. The method of claim 1, wherein receiving therequest includes: receiving the request at a first processing deviceassociated with the environment, wherein a user interfaces with a secondprocessing device to create the request.
 3. The method of claim 2,wherein the second processing device is a computer system operated bythe user.
 4. The method of claim 3, wherein the request is received froma network connected to the first and second processing devices.
 5. Themethod of claim 3, wherein the request is sent to the first processingdevice over the Internet.
 6. The method of claim 3, wherein the secondprocessing device is a kiosk computer device located within theenvironment.
 7. The method of claim 3, wherein the first processingdevice is located within the environment.
 8. The method of claim 3,wherein the first processing device is located outside the environment.9. The method of claim 8, wherein the first processing device forwardsthe request to a third processing device located in the environment thatperforms the searching step.
 10. The method of claim 1, wherein theindication includes at least one of an indication that the item isavailable in the environment, an indication that the item is notavailable in the environment, an offer for a discount on a sale price ofthe item, an offer for a discount on a sale price of an alternativeitem, and an indication reflecting one or more alternative environmentsthat the item is available.
 11. The method of claim 10, wherein theindication reflecting one or more alternative environments includesdirections to the one or more alternative environments.
 12. The methodof claim 1, wherein providing the indication includes providing amessage displayed on a display device mounted in proximity of the item'srespective location in the environment.
 13. The method of claim 12,wherein the message includes at least one of an indication that the itemis not available in the environment, an offer for a discount on a saleprice of the item, an indication reflecting one or more alternativeenvironments that the item is available, and directions to the one ormore alternative environments.
 14. A system for providing inventoryinformation in an environment including an inventory of items eachpositioned within a respective location within an environment and isassociated with a corresponding wireless identification device, and aninventory monitoring process that periodically performs an inventorycount of the items in the environment by retrieving item informationfrom each wireless identification device associated with each item andstoring the retrieved information in a database, the system comprising:means for receiving from a user a request for an availability of an itemwithin the environment; means for searching the item information withinthe database to determine whether the requested item is available in theenvironment; and means for providing an indication reflecting a resultof the search.
 15. The system of claim 14, wherein the means forreceiving the request includes: means for receiving the request at afirst processing device associated with the environment, wherein a userinterfaces with a second processing device to create the request. 16.The system of claim 15, wherein the second processing device is acomputer system operated by the user.
 17. The system of claim 16,wherein the request is received from a network connected to the firstand second processing devices.
 18. The system of claim 16, wherein therequest is sent to the first processing device over the Internet. 19.The system of claim 16, wherein the second processing device is a kioskcomputer device located within the environment.
 20. The system of claim16, wherein the first processing device is located within theenvironment.
 21. The system of claim 16, wherein the first processingdevice is located outside the environment.
 22. The system of claim 21,wherein the first processing device forwards the request to a thirdprocessing device located in the environment that performs the searchingstep.
 23. The system of claim 16, wherein the indication includes atleast one of an indication that the item is available in theenvironment, an indication that the item is not available in theenvironment, an offer for a discount on a sale price of the item, anoffer for a discount on a sale price of an alternative item, and anindication reflecting one or more alternative environments that the itemis available.
 24. The system of claim 23, wherein the indicationreflecting one or more alternative environments includes directions tothe one or more alternative environments.
 25. The system of claim 16,wherein the means for providing the indication includes providing amessage displayed on a display device mounted in proximity of the item'srespective location in the environment.
 26. The system of claim 25,wherein the message includes at least one of an indication that the itemis not available in the environment, an offer for a discount on a saleprice of the item, an indication reflecting one or more alternativeenvironments that the item is available, and a directions to the one ormore alternative environments.
 27. A computer-readable medium includinginstructions for performing a method, when executed by a processor, forproviding inventory information in an environment including an inventoryof items each positioned within a respective location within anenvironment and is associated with a corresponding wirelessidentification device, and an inventory monitoring process thatperiodically performs an inventory count of the items in the environmentby retrieving item information from each wireless identification deviceassociated with each item and storing the retrieved information in adatabase, the method comprising: receiving from a user a request for anavailability of an item within the environment; searching the iteminformation within the database to determine whether the requested itemis available in the environment; and providing an indication reflectinga result of the search.
 28. The computer-readable medium of claim 27,wherein receiving the request includes: receiving the request at a firstprocessing device associated with the environment, wherein a userinterfaces with a second processing device to create the request. 29.The computer-readable medium of claim 28, wherein the second processingdevice is a computer system operated by the user.
 30. Thecomputer-readable medium of claim 29, wherein the request is receivedfrom a network connected to the first and second processing devices. 31.The computer-readable medium of claim 29, wherein the request is sent tothe first processing device over the Internet.
 32. The computer-readablemedium of claim 29, wherein the second processing device is a kioskcomputer device located within the environment.
 33. Thecomputer-readable medium of claim 29, wherein the first processingdevice is located within the environment.
 34. The computer-readablemedium of claim 29, wherein the first processing device is locatedoutside the environment.
 168. The computer-readable medium of claim 34,wherein the first processing device forwards the request to a thirdprocessing device located in the environment that performs the searchingstep.
 35. The computer-readable medium of claim 27, wherein theindication includes at least one of an indication that the item isavailable in the environment, an indication that the item is notavailable in the environment, an offer for a discount on a sale price ofthe item, an offer for a discount on a sale price of an alternativeitem, and an indication reflecting one or more alternative environmentsthat the item is available.
 36. The computer-readable medium of claim35, wherein the indication reflecting one or more alternativeenvironments includes directions to the one or more alternativeenvironments.
 37. The computer-readable medium of claim 27, whereinproviding the indication includes providing a message displayed on adisplay device mounted in proximity of the item's respective location inthe environment.
 38. The computer-readable medium of claim 37, whereinthe message includes at least one of an indication that the item is notavailable in the environment, an offer for a discount on a sale price ofthe item, an indication reflecting one or more alternative environmentsthat the item is available, and directions to the one or morealternative environments.